享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享技术来高效地支持大量细粒度对象的复用。
一、基础
1 意图
-
运用共享技术有效地支持大量细粒度的对象
-
减少内存中对象的数量,节省系统资源
2 适用场景
-
一个应用程序使用了大量对象
-
由于对象数量庞大造成很大的存储开销
-
对象的大多数状态可以外部化
-
删除对象的外部状态后,可以用较少的共享对象取代很多组对象
-
应用程序不依赖对象标识
3 结构
- 抽象享元(Flyweight):定义了享元对象的接口,声明了操作外部状态的方法。
- 具体享元(ConcreteFlyweight):实现了抽象享元接口,存储了内部状态,并在操作中使用外部状态。
- 享元