定义:
享元模式又称为轻量级模式,是对象池的一种实现。共享细粒度对象,将多个对同一对象的访问集中起来。常常应用于系统底层的开发,以便解决系统性能问题。
应用实例:
- String 常量池
- 数据库连接池
- 线程池
- Integer、 Long 等包装类的内部缓存
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
优点:
- 减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率
- 减少内存之外的其他资源占用。(数据库连接池等)
缺点:
- 使程序设计需要关注内,外部状态,关注线程安全问题。
- 使系统、程序的逻辑复杂化。