Skip to the content.

享元模式

享元模式(Flyweight Pattern): 运用共享技术复用大量细粒度的对象,降低程序内存的占用,提高程序的性能。

举例: 例如UITableViewCell的缓存机制,大道降低内存消耗的目的。举例,音乐服务根据收费划分出免费用户和会员用户,免费用户只能听部分免费音乐,会员可以听全部的音乐,并且可以下载。虽然二者权限上有所区别,但是他们所享受的音乐是来自同一个音乐库,这样所有的音乐都只需要保存一份就可以了。另外,如果出现音乐库里没有的音乐时,则需要新增该音乐,然后其他服务也可以享受新增的音乐,相当于享元池或者缓存池的功能。

享元模式保证共享内部状态如音乐库,而外部状态根据不同需求定制各种访问权限,使用中不能去改变内部状态,以达到共享的目的。

优点

缺点