JAVA设计模式之享元模式

来源:互联网 发布:盐城管家婆软件 编辑:程序博客网 时间:2024/06/04 19:41

享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。
这里写图片描述
FlyWeight是超类,FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象。
主要解决的问题是:在有大量对象时,有可能会造成内存溢出,可以把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。
在JAVA中,String的实现就采用了享元模式,当创建一个字符串常量的时候,会首先在字符串常量池中查找是否已经有相同的字符串定义,判断依据是String类的equals方法的返回值,