设计模式-享元模式

享元模式 参考

后 续:

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

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

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/johnnyzhao/p/11100546.html