轻量级(享元)模式我感觉看起来有点像单例,但是单例是类级别的,一个类只能有一个实例,而享元模式是对象级别的,是为了重复使用节省内存,对象实例可以有多个。享元模式主要是为了节约内存空间,提高系统性能,而单例模式主要为了可以共享数据。享元模式需要分析对象身上那些应当共享的信息和不应该共享的信息。把需要共享的提取出来就是享元了。
- 抽象轻量级类(Flyweight):声明一个接口并且有一些属性可以设置对象的状态
- 具体轻量级类(ConcreteFlyweight):实现接口,并且有相关的状态
- 不共享具体轻量级类(UnsharedConcreteFlyweight):不被共享的具体轻量级类
- 轻量级类工厂(FlyweightFactory):创建并且管理Flyweight对象,当客户端发出轻量级类请求时提供一个已创建或者未创建的对象
-
客户端(Client) :只需要使用轻量级类工厂调用相应的轻量级类即可。
网友评论