美文网首页
享元模式例子

享元模式例子

作者: xiao_xian | 来源:发表于2021-07-04 12:46 被阅读0次

享元模式,亦称cache、flyweight
内在状态:对象的常量数据,其他对象只能读不能改
外在状态:能“从外部”改变

享元模式将部分或全部内在状态抽取出来,单独存放一个地方(共享),以减少内存的占用,适合需要创建大量相似对象(只保留内在状态对象的引用)的场景。

伪代码例子:

// 内在状态类,享元类
class Flyweight is
    field repeatingState

    // 可能需要根据外在状态进行操作
    method operation(uniqueState) is
        // 执行操作...

// 需要创建大量相似对象的情景类,包含内在状态和外在状态
class Context is
    field uniqueState
    // 只保留享元类对象引用
    filed flyweight: Flyweight

    constructor Context(repeatingState, uniqueState) is
        this.uniqueState = uniqueState
        this.flyweight = FlyweightFactory.getFlyweight(repeatingState)

    method operation() is
        // xxx...
        flyweight.operation(uniqueState)

// 由工厂类根据repeatingState参数返回对应的享元类对象
class FlyweightFactory is
    // 缓存已经创建的享元类对象
    static field cache: Flyweight[]

    // 根据repeatingState参数返回对应的享元类对象
    static method getFlyweight(repeatingState): Flyweight is
        flyweight = cache.get(repeatingState)
        if (flyweight == null)
            flyweight = new Flyweight(repeatingState)
            chache.put(repeatingState, flyweight)
        return flyweight

// Client在构造情景类时传入repeatingState和uniqueState参数
class Demo is
    method example() is
        context = new Context(repeatingState, uniqueState)
        context.operation()

相关文章

  • 享元模式例子

    享元模式,亦称cache、flyweight内在状态:对象的常量数据,其他对象只能读不能改外在状态:能“从外部”改...

  • 设计模式之享元模式(flyweight模式)

    引入享元模式 享元模式的实例 享元模式的分析 引入享元模式 flyweight是轻量级的意思,指的是拳击比赛中选手...

  • 第4章 结构型模式-享元模式

    一、享元模式的简介 二、享元模式的优缺点 三、享元模式的实例

  • 享元模式

    一、享元模式介绍 二、享元模式代码实例

  • 设计模式--享元模式

    目录 本文的结构如下: 引言 什么是享元模式 模式的结构 典型代码 代码示例 单纯享元模式和复合享元模式 模式扩展...

  • 享元模式C++

    享元模式,就是运用共享技术有效地支持大量细粒度的对象。 享元模式结构图 享元模式基本代码 应用场景 享元模式可以避...

  • 设计模式之——享元模式

    1 享元模式的定义 享元模式:使用共享对象可有效地支持大量细粒度的对象。享元模式是池技术的重要实现方式。享元模式的...

  • 好程序员Java培训​分享java设计模式之享元模式

    好程序员Java培训​分享java设计模式之享元模式,Java设计模式中的享元模式。享元模式有点类似于单例...

  • 结构型模式:享元模式

    文章首发:结构型模式:享元模式 七大结构型模式之六:享元模式。 简介 姓名 :享元模式 英文名 :Flyweigh...

  • Java设计模式(三)

    talk is cheap show me the code 享元模式 享元模式 责任链模式 责任链模式Filte...

网友评论

      本文标题:享元模式例子

      本文链接:https://www.haomeiwen.com/subject/hubmultx.html