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

本文详细介绍了设计模式中的组合模式,该模式常用于构建树形结构。通过树枝和树叶的类比,说明了如何通过组合模式实现结构的变化。安全抽象构件接口定义了显示结果的行为,树枝对象负责循环其所有子对象,而树叶对象直接显示结果。通过一个无限循环的故事例子,展示了组合模式的实际应用。文章最后给出了组合模式的测试程序,呈现出一个永无止境的故事。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

 

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

 

 

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

 

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

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

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

下面就是讲故事的环节:

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

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

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

 

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

 

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

 

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

下面建立各个组成部分

 

 

最后组成测试程序:

结果:

永远也讲不完的故事

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值