首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设计模式(十三)组合模式 技术栏(张老师)

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

一、创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型

二、结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合

三、行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

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

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

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

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

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

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

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

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

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

下面就是讲故事的环节:

儿时听过这样一个故事“从前有座山,山上有座庙,庙里有个老道,讲故事,讲的

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

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

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

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

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

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

下面建立各个组成部分

最后组成测试程序:

结果:

永远也讲不完的故事

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211009A029WN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券