享元模式用于减少创建对象的数量,以减少内存占用和提高性能。抽象出内部状态(共共享部分),利用外部状态来具体区分。当这些对象的状态大部分可外部化时可以考虑用享元模式消除相同类型的实例。
代码结构:
1.享元类,持有一些内部状态。和一些可以设置外部状态的方法以及一些行为方法。
2享元工厂类,用于创建享元实例。持有一个哈希表用于存储享元实例,键用于区分内部状态的,一种内部状态对应一个实例,值为该享元实例。拥有获取享元实例的方法,参数为内部状态,如果哈希表中已拥有则返回该值,没有就创建再返回该值。获取到的享元实例可以通过一些方法设置外部状态,从而区分同类实例的不同。
网友评论