组合模式
组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
简单说,组合模式对应的情况是有一个总部,总部下有各个职能部门,也有组织架构类似于总部的分部(其下也有职能部门和分分部)。
如果说总部下只有职能部门,没有分部。这种情况那就不需要设计模式了,直接组合即可。
看完代码后,发现Leaf类里有用不到的Add和Remove。好处在于让职能部门(Leaf对象)与分部(Composite对象)具备完全一致的行为接口。
如果不想要 用不到的Add和Remove 这部分,就在Component中不去声明,之后再Composite来声明即可,但这样会让客户端需要判断,相对变得不方便。
组合模式可以让客户一致的使用组合结构和单个对象。
当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。
标签:总部,职能部门,组合,对象,模式,分部,设计模式 来源: https://www.cnblogs.com/LampsAsarum/p/12235725.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。