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

组合器模式

组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示"整体-部分"的层次关系

组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式

优点

高层模块调用简单

节点自由增加

缺点

在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则

UML 图解

组合模式的角色及职责:

Component:这是组合中对象声明接口,在适当情况下,实现所有类共有的接口默认行为,用于访问和管理 Component 子部件,Component 可以是抽象类或者接口

Composite:非叶子节点,用于存储子部件,在 Component 接口中实现子部件的相关操作,比如增加(add),删除等

Leaf:在组合中表示叶子节点,叶子节点没有子节点(它是被管理者)

案例

这种模式使用的案例还是蛮多的,例如树形菜单的遍历、公司组织架构、文件和文件夹等等。下面就以公司的组织架构为例编写对应代码

客户端部分

核心代码

以上就是组合模式的玩法,古人说书上得来终觉浅,绝知此事要躬行,所以如果你在看完代码还是无法理解的话,那我建议你动手写一遍。

结语

这个设计模式其实不复杂,我在做的时候有好几次都卡壳了,所以最好还是动手写一遍。最后放一张运行效果图

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券