🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 亦称:缓存、Cache、Flyweight **享元模式**是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 ## 享元模式结构 ![](https://img.kancloud.cn/08/dd/08ddb88e309e31e36294713a7ffb74d8_1280x780.png) 1. Flyweight(抽象享元类):一个接口或抽象类,声明了具体享元类的公共方法。 2. ConcreteFlyweight(具体享元类): 实现了抽象享元类,其实例称为享元对象。 3. UnsharedConcreteFlyweight(非共享具体享元类): 并不是所有的抽象享元类的子类都需要被共享,不能被共享的子类可设计为非共享具体享元类。 4. FlyweightFactory(享元工厂类): 用于创建并管理享元对象,一般设计为一个Key-Value键值对的集合(可以结合工厂模式设计)。其作用就在于:提供一个用于存储享元对象的享元池,当用户需要对象时,首先从享元池中获取,如果享元池中不存在,那么就创建一个新的享元对象返回给用户,并在享元池中保存该新增对象。 ## 适合应用场景 1. 仅在程序必须支持大量对象且没有足够的内存容量时使用享元模式。