一、前言
享元模式的设计初衷是为了支持大量细粒度对象。在我们的某些系统中,可能会有大量的对象产生,造成很大的储存开销,比如说连接数据库的session对象,我们通过缓存池来管理这些session。享元模式就是为了解决这种内存开销问题,享元模式属于结构型的设计模式。
二、享元模式
概述:运用共享技术有效地支持大量细粒度的对象。主要用于减少创建对象的数量,以减少内存占用和提高性能。
享元模式的设计原理:尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。
适用场景:
1、一个应用程序使用了大量的对象。
2、完全由于使用大量的对象,造成很大的存储开销。
3、需要缓冲池的场景
三、代码展示
享元模式的原理比较简单,就是创建一个类似于缓存池的东西,我们从这个缓存池去拿对象,当对象不存在或者不够时,我们再new出新的对象,这样就能达到减少内存的开销目的
3.1 一个享元类
public interface Flyweight {
public void getColor();
}
public class FlyweightImpl implements Flyweight{
private String color;
public FlyweightImpl(String color) {
// TODO Auto-generated constructor stub
this.color = color;
}
@Override
public void getColor() {
// TODO Auto-generated method s