享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。
享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象
结构图
角色与理解
- 享元模式共分为四种角色:
- Flyweight (抽象享元类):通常是一个接口或者是抽象类,在抽象享元类中声明了共享享元类的公共方法,通过这些方法可以访问享元类的内部数据(内部状态),也可以设置享元类的外部数据(外部状态)
- Concrete Flyweight (共享具体享元类):实现抽象享元类,其实例称为享元对象,一般为单例模式,提供唯一的享元对象
- UnsharedConcrete Flyweight (非共享具体享元类):实现抽象享元类,但是不共享,通过构造函数进行实例化
- Flyweight Factory (享元工厂类):创建并管理享元对象,以内部的键值对结构存储享元对象
- 共享具体享元类与非共享具体享元类实现抽象享元类,能够保证他们对外具有一致的行为接口,为客户端的使用提供了便利,客户端通过享元工厂类获取共享享元对象。
- 享元工厂类返回的享元对象都是只有内部状态的享元对象,通过客户端操作添加外部状态
核心代码
- 抽象享元类
- 具体享元类
- 享元工厂类
- 外部状态类
- 客户端
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
存储器
+关注
关注
38文章
7485浏览量
163790
发布评论请先 登录
相关推荐
优化电动汽车的结构性能
优化电动汽车的结构性能以提高效率和安全性迅速增长的全球电动汽车(EV)市场预计到2027年将达到8028亿美元。在电池和高压电子设备的驱动下,电动汽车的运行和维护成本往往低于传统汽车,几乎不会产生
发表于 09-17 08:10
基于信息元的模式匹配方法
有效的描述形式、处理耗时等缺点,极大地阻碍了结构信息的使用.为了充分利用结构信息,提出一种基于信息元的模式匹配方法(IU_Based),该方法首先将
发表于 01-23 15:29
•0次下载
如何通过设计模式来节省内存
相信大家日常开发过程中,一个优秀的程序猿写出的代码一定要节省空间的,比如节省内存,节省磁盘等等。那么如何通过设计模式来节省内存呢? 1、什么是享元模式? Use sharing to
评论