• 23种设计模式(十三)组合模式(阁瑞钛伦特软件-九耶实训)


    常说的设计模式是23种设计模式,分为3大类:

    • 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
    • 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
    • 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

                     上次咱们说了“享元模式”。今天咱们聊一聊结构型模式中的“组合模式”。

    结构型模式重点在于结构的变化。

    “组合模式”主要是“组合”的结构设定。

    经常使用的案例是树的组成。

     

    我们把树分为由“树枝”和“树叶”组成,为什么这么分呢?其中的组成部分是有区别的,“树枝”的下一级有可能是“树枝”也有可能是“树叶”,如果是“树叶”就没有下一级了。所以先建立一个安全抽象构件接口,主要是行为operation为显示结果行为。

     

     

    如果“树枝”此行为就是要循环它的所有子对象,一个“树枝”下可能有多个“树枝”或“树叶”。

     

    如果是“树叶”就直接显示,并且没有任何的子对象。

    在应用中:     建立“树枝”对象,可以添加子对象。

    建立“树叶”对象,不可以添加子对象。

    下面就是讲故事的环节:

    儿时听过这样一个故事“从前有座山,山上有座庙,庙里有个老道,讲故事,讲的故事就是,从前有座山,山上有座庙,庙里有个老道,讲故事......”就此下去,直到我睡着了。从来没有听完的故事。

    今天,我们就来分解一下故事的组成部分,有山,有庙,有老道,有故事,故事里有山有庙有老道有故事。就此组合下去是无限的,但是我们设置一个故事开始,和故事的结束,其余的都可以无限的组合。

    安全接口,分故事主题构件和结束故事构件

     

    接口中,定义了多个方法,其中operation为结果方法

     

    在故事主体中,添加其他的组成部分

     

    故事结束的构建,最终结果显示结束

    下面建立各个组成部分

     

     

    最后组成测试程序:

    结果:

    永远也讲不完的故事

     

     

  • 相关阅读:
    记录跑yolov5时,遇到的一个问题
    基于Spark的大规模日志分析
    1. Flink程序打Jar包
    Unity学习笔记[一] RollBall小游戏
    谷歌翻译不能用了
    用DIV+CSS技术设计的水果介绍网站(web前端网页制作课作业)
    【1】DDR---容量计算
    [4G/5G/6G专题基础-156]: 什么是物理层信道评估
    Oracle中序列
    72岁奶奶在抖音教物理火了,百万粉丝追更,网友:小时候要有这种老师就好了...
  • 原文地址:https://blog.csdn.net/m0_69234258/article/details/126193343