简介
- 享元模式(FlyWeight)是一种用于性能优化的模式,运用共享技术来有效支持大量细粒度的对象。主要用于
当系统中创建了大量类似的对象从而导致内存占用过时的情况。 - 享元模式要求将对象的属性划分为内部状态(属性)和外部状态(属性)。目标是尽量减少共享对象的数量。
如何划分内部对象和外部对象
- 内部状态存储于对象内部。
- 内部状态可以被一些对象共享。
- 内部状态独立于具体的场景,通常不会改变。
- 外部状态取决于具体的场景,并根据场景而变化,外部状态不能被共享。
何时使用
- 一个程序中使用了大量相似的对象
- 由于使用了大量对象,造成很大的内存开销
- 对象的大多数状态都可以变为外部状态
- 剥离出对象的外部状态后,可以用相对较少的共享对象取代大量对象。
5.