首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设计模式结构性:享元模式(FlyweightPattern)

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。

享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象

结构图

角色与理解

享元模式共分为四种角色:

Flyweight(抽象享元类):通常是一个接口或者是抽象类,在抽象享元类中声明了共享享元类的公共方法,通过这些方法可以访问享元类的内部数据(内部状态),也可以设置享元类的外部数据(外部状态)

Concrete Flyweight(共享具体享元类):实现抽象享元类,其实例称为享元对象,一般为单例模式,提供唯一的享元对象

UnsharedConcrete Flyweight(非共享具体享元类):实现抽象享元类,但是不共享,通过构造函数进行实例化

Flyweight Factory(享元工厂类):创建并管理享元对象,以内部的键值对结构存储享元对象

共享具体享元类与非共享具体享元类实现抽象享元类,能够保证他们对外具有一致的行为接口,为客户端的使用提供了便利,客户端通过享元工厂类获取共享享元对象。

享元工厂类返回的享元对象都是只有内部状态的享元对象,通过客户端操作添加外部状态

核心代码

抽象享元类

具体享元类

享元工厂类

外部状态类

客户端

- END -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201214A0IHCV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券