享元模式

享元模式(flyweight pattern)定义:
摈弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,从而让我们能在优先的内存容量中载入更多的对象。

从这个定义可以发现,享元模式要解决的核心问题就是节约内存空间,使用的办法是找出相似对象之间的共有特征,然后复用这些特征,所谓“享元”
,即被共享的单元。
例如一个文本字符串中存在很多重复的字符,如果每一个字符都用一个单独的对象来表示,将会占用较多的内存空间,我们可以使用享元模式解决这一类问题。

享元模式通过共享技术实现相同或者相似对象的重用,在逻辑上每一个出现的字符都有一个对象与之对应,然而在物理上他们却是共享一个享元对象
享元模式结构:
两种状态:
内部状态:不会随着环境的改变而改变的可共享部分
外部状态:指的是随着环境的改变而改变的不可以共享的部分


总结:
优点:
极大的减少了内存中相似或者相同的数量,节约系统资源,提高系统性能
享元模式中的外部状态相对独立,且不影响内部状态
缺点:
为了使对象可以共享,需要蒋享元对象的部分状态外部化,分离内部状态和外部状态,使程序逻辑辅复杂化

 

posted on 2024-02-26 10:53  青山远树  阅读(3)  评论(0编辑  收藏  举报