享元模式
字数: 0 字 时长: 0 分钟
简介
享元模式(Flyweight Pattern)核心思想是:通过共享对象,减少系统中对象的数量,从而节省内存,提高性能。适合应用在特定业务场景下,比如游戏中的粒子特效。
UML 类图
- 抽象享元(Flyweight):定义享元对象的接口,规定外部状态传入的标准方法
- 具体享元(ConcreteFlyweight):实现抽象享元接口,内部保存可以共享的状态
- 享元工厂(FlyweightFactory):负责创建和管理享元对象,确保相同的享元对象只被创建一次,进行共享
- 客户端(Client):通过享元工厂获取享元对象,同时传入外部状态进行使用
实现示例
常规业务应用场景有限,直接以 JDK 中的 Integer.valueOf()
方法为例,这个方法在返回 Integer
对象时,并不会每次都 new
一个,而是对 -128 ~ 127
范围内的整数做了缓存,直接复用已经存在的对象。