享元模式

Posted lyr-2000

tags:

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

享元模式常常用于系统底层的开发,以便于解决系统的性能问题

定义:提供了减少对象数量从而改善应用所需的对象结构方式

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

比如String, 有就返回,没有就创建,然后将对象保存在缓存池里面

系统有大量相识对象,需要缓冲池的场景(线程池,常量池,数据库连接池)

享元模式-优点:

减少对象的创建,降低内存中对象的数量,降低系统内存,提高效率

较少内存之外的其他资源占用

比如系统操作文件的句柄,如果不共享,就很容易资源浪费

缺点:

关注内/外部状态、关注线程安全问题

使得系统、程序的逻辑复杂化

技术图片

缓存

?

和其相关的设计模式: 代理模式、单例模式

?

例如

public Object get () {

if(map.get(0)==null) {

????map.put(0,new object());

}

return map.get(0);

}

?

?

?

?

?

?

?

?

?

?

?

?

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

设计模式(十三)——享元模式

设计模式---享元模式

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

享元模式

享元模式(Flyweight)

结构型模式 享元模式