结构型设计模式-享元(缓存) Flyweight

date
Apr 18, 2021
slug
design-pattern-flyweight
status
Published
tags
设计模式
summary
type
Page

简介

享元模式更常见的叫法是缓存或 cache,一个对象只创建一次,之后一直复用这一对象。
跟单例不同在于,单例是全局只有唯一一个对象,所有人一起用同一个对象,且该对象是提前预设好的,不能定制。
而享元则可以根据参数不同创建出不同的实例,不过实例一旦创建就只保留一份,之后再次创建相同参数的实例则返回该对象,供所有引用的地方使用,引用方之间共享同一份享元实例的数据。
过程有点像定制化的单例模式。
 

角色

  • Flyweight 享元类
    • 定制化的业务实体,根据不同需要可能定制不同的享元类,但一旦创建出一个享元类,以后都复用这一个类
  • FlyweightFactory 享元工厂类
    • 用来创建和缓存享元实体的地方
 

类图

notion image
 

代码

 
output:

© 菜皮 2020 - 2024