结构型模式-组合模式

标签(空格分隔):组合模式 透明方式 安全方式


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

组合模式的应用比较常见与带有组织架构的地方,特别在那些希望忽略是由这个整体中哪个部分来完成自己期望任务的时候使用。例如:我们去生病了,需要去医院,但是不知道自己的病症要到哪个部门去检查和治疗,我们只需要关心将自己的病治好,这个时候医院可以看作一个组合模式;医院由各个部门组合而成,病人在看病前并不需要关心自己需要去哪,只需要知道自己去医院治病即可。

组合模式主要解决:模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。

优点:调用模块简单,处理一个元素和处理多个元素函数是一样的。多个元素被组合成这一个元素来执行。

树结构的实现方式有两种:

  • 透明模式:根节点和叶子节点被认为是相同的,都提供“ADD”,"REMOVE"方法,但是这两个方法对叶子节点几乎没有作用(但是也不能避免在叶子节点增加新叶子节点)。由于这种方式生成的树,所有节点都拥有ADD/REMOVE方法,外界有必要的可以直接使用。
  • 安全模式:根节点和叶子节点被被认为是相同的,但是不都提供“ADD”,"REMOVE"方法,这种情况下生成的组合树,对于调用者来说只有根节点可以获取和调用。这种方式生成的树透明性差,但是也变相增加了这种组合树的安全。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容