[设计模式]享元模式

1. 享元模式的介绍

享元模式是对象池的一种实现,英文名为Flyweight,代表轻量级的意思。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能、避免内存移除等。
享元模式的部分状态是可以共享,可以共享的状态成为内部状态,内部状态不会随着环境变化;不可共享的状态则称之为外部状态;他们随着环境的改变而改变。在享元模式中会建立一个对象容器,在经典的享元模式中该容器为一个Map,健值就是享元对象的内部状态,它的值就是享元对象本身。客户端程序通过这个内部状态从享元工厂中获取享元对象,如果有缓存则使用缓存对象,否则创建一个享元对象并且存入容器中,这样一来就避免了穿件过多对象的问题

2.享元模式定义

使用共享对象可有效地支持大量的细粒度的对象。

3.使用场景

  • 系统中存在大量相似对象。
  • 溪洛渡的对象都具备较接近的外部状态,而且外部状态与环境无关,也就是说对象没有特定身份
  • 需要缓冲池的场景
posted @ 2016-05-11 22:11  zhou23  阅读(110)  评论(0编辑  收藏  举报