享元模式是一种对象结构型模式,通过运用共享技术,有效地支持大量细粒度的对象。系统只使用少量的对象,而这些对象都很相似,状态变化很小,对象使用次数增多。享元对象能做到共享的关键是区分内部状态和外部状态。内部状态存储在享元对象内部并且不会随坏境改变而改变,因此内部状态可以共享;外部状态时随环境改变而改变的、不可以共享的状态,享元对象的外部状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部,外部状态之间是相互独立的。
优点:
1)减少了要处理的对象数目。
2)如果对象能够持续,可以减少内存和存储设备。
使用场景:
1)应用程序使用大量的对象。
2)由于对象数目巨大,导致很高的存储开销。
3)应用程序不依赖于对象的身份。
FlyWeight 模式