设计模式之 【享元模式】

享元模式定义:

运用共享技术有效地支持大量细粒度的对象。

 

理解 :

它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 

 

结构

两个状态:

内蕴状态存储在享元内部,不会随环境的改变而有所不同,是可以共享的。

外蕴状态是不可以共享的,它随环境的改变而改变的,因此外蕴状态是由客户端来保持(因为环境的变化是由客户端引起的)。

优点:

享元模式优点,在于外部状态相对独立,使得对象可以在不同的环境中被复用(共享对象可以适应不同的外部环境)。且享元模式可共享相同或相似的细粒度对象,从而减少了内存消耗,同时降低了对象创建与垃圾回收的开销。

缺点:

外部状态由客户端保存,共享对象读取外部状态的开销可能比较大。享元模式要求将内部状态与外部状态分离,这使得程序的逻辑复杂化,同时也增加了状态维护成本。

发布了70 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43472073/article/details/104137714