GOF设计模式之享元模式(FlyWeight)
享元模式以共享的方式高效地支持大量细粒度对象的重用。
享元对象能做到共享的关键是区分了内部状态和外部状态
·内部状态:可以共享,不会随环境变化而改变
·外部状态:不可以共享,会随环境变化而改变
享元类
1 | /** |
外部状态
1 | /** |
享元工厂
1 | /** |
测试
1 | public class Client { |
结果
FlyWeight.ConcreteChess@15db9742
FlyWeight.ConcreteChess@15db9742
外部状态处理
棋子颜色黑色
棋子位置12—–5
棋子颜色黑色
棋子位置15—–7