设计模式-享元模式

Posted johnnyzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-享元模式相关的知识,希望对你有一定的参考价值。

享元模式 参考

 

后 续:

享元模式在一般的项目开发中并不常用,而是常常应用于系统底层的开发,以便解决系统的性能问题。

比如:Java中的String类型就是使用了享元模式。

到底系统需要满足什么样的条件才能使用享元模式。对于这个问题,总结出以下几点:

1、一个系统中存在着大量的细粒度对象;

2、这些细粒度对象耗费了大量的内存。 

3、这些细粒度对象的状态中的大部分都可以外部化; 

4、这些细粒度对象可以按照内蕴状态分成很多的组,当把外蕴对象从对象中剔除时,每一个组都可以仅用一个对象代替。 

5、软件系统不依赖于这些对象的身份,换言之,这些对象可以是不可分辨的。

满足以上的这些条件的系统可以使用享元对象。最后,使用享元模式需要维护一个记录了系统已有的所有享元的哈希表,也称之为对象池,而这也需要耗费一定的资源。因此,应当在有足够多的享元实例可供共享时才值得使用享元模式。

以上是关于设计模式-享元模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之享元模式与组合模式详解和应用

设计模式-享元模式

享元模式(Flyweight Pattern)

设计模式之享元模式(结构型)

Java设计模式之——享元模式

java设计模式 GOF23 11 享元模式