Skip to content

享元模式

字数: 0 字 时长: 0 分钟

简介

享元模式(Flyweight Pattern)核心思想是:通过共享对象,减少系统中对象的数量,从而节省内存,提高性能。适合应用在特定业务场景下,比如游戏中的粒子特效。

UML 类图

flyweight.webp

  • 抽象享元(Flyweight):定义享元对象的接口,规定外部状态传入的标准方法
  • 具体享元(ConcreteFlyweight):实现抽象享元接口,内部保存可以共享的状态
  • 享元工厂(FlyweightFactory):负责创建和管理享元对象,确保相同的享元对象只被创建一次,进行共享
  • 客户端(Client):通过享元工厂获取享元对象,同时传入外部状态进行使用

实现示例

常规业务应用场景有限,直接以 JDK 中的 Integer.valueOf() 方法为例,这个方法在返回 Integer 对象时,并不会每次都 new 一个,而是对 -128 ~ 127 范围内的整数做了缓存,直接复用已经存在的对象。