定义:提取相似之处作为共享技术
优:
相同对象只要保留一份,降低了系统中对象的数量
缺:
1.为了使对象共享,须将一些不能共享的状态外部化,将增加程序的负责性
2.读取享元模式的外部状态,使得运行时间稍变长
状态:
1.内部状态:即不会随着环境的改变而改变的可共享部分
2.外部状态:随着环境改变而改变的不可共享的部分
结构:
1.抽象享元角色(Flyweight):是所有具体享元类的基类,为具体的享元规范需要实现的公共接口,非享元的外部状态以参数的形式通过方法传入
2.具体享元角色(Concrete Flyweight):实现1的接口
3.非享元角色(Unsharable Flyweight):是外部状态
4.享元工厂角色(Flyweight Factory):创建和管理享元角色,根据客户端需要的对象,将其返回