享元模式
享元模式(Flyweight Pattern):主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它减少对象数量,从而改善所需要的对象结构的方式。
享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新的对象。
根据实际开发经验来理解享元模式其本质就是对象缓存池。通过缓存池复用来减少动态创建对象的数量以及次数。(后续代码重构的时候会记录实际用例,这里不再介绍缓存池的实例)
几种“共享”设计模式的区别
- 原型模式:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。通过深浅拷贝来实现复用以节约资源开销,倾向于复用。
- 单例模式:保证一个类有且仅有一个实例,并提供一个全局的访问点。单例模式只有一个实例,全局访问,注重的是一种数据共享。
- 享元模式:运用共享技术(缓存池)有效地支持大量细粒度的对象,更倾向于共享使用