享元模式
角色:
Flyweight:抽象享元类
ConcreteFlyweight:具体享元类
UnsharedConcrereFlyweight:非共享具体享元类
FlyweightFactory:享元工厂类
模式动机:
享元模式通过共享技术实现相同或相似对象的重用。
在享元模式中可以共享的相同内容称为内部状态(Intrinsic State)
需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State)
在享元模式中通常会出现工厂模式,需要创建一个享元工厂来负责维护一个享元池(Flyweight Pool)用于存储具有相同内部状态的享元对象。
实例
1、无外部状态
2、有外部状态