码迷,mamicode.com
首页 > 其他好文 > 详细

【设计模式】组合模式

时间:2020-01-27 14:03:26      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:应该   http   合成   相对   需求   组合   也有   完全   strong   

组合模式

组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

简单说,组合模式对应的情况是有一个总部,总部下有各个职能部门,也有组织架构类似于总部的分部(其下也有职能部门和分分部)。

如果说总部下只有职能部门,没有分部。这种情况那就不需要设计模式了,直接组合即可。

技术图片

技术图片

看完代码后,发现Leaf类里有用不到的Add和Remove。好处在于让职能部门(Leaf对象)与分部(Composite对象)具备完全一致的行为接口。

如果不想要 用不到的Add和Remove 这部分,就在Component中不去声明,之后再Composite来声明即可,但这样会让客户端需要判断,相对变得不方便。

组合模式可以让客户一致的使用组合结构和单个对象。

当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。

【设计模式】组合模式

标签:应该   http   合成   相对   需求   组合   也有   完全   strong   

原文地址:https://www.cnblogs.com/LampsAsarum/p/12235725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!