本文介绍: 在该方式中,将管理子构件的方法移到树枝构件中,抽象构件和树叶构件没有对子对象的管理方法,这样就避免了上一种方式的安全性问题,但由于叶子和分支有不同的接口,客户端在调用时要知道树叶对象和树枝对象的存在,所以失去了透明性。:又叫“部分-整体”模式,它是一种将对象组合成树状的层次结构的模式,依据树形结构来组合对象,用来表示部分以及整体层次,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。要求对用户隐藏组合对象与单个对象的不同,用户可以用统一的接口使用组合结构中的所有对象的场合。

图片

大家好,我是馆长!今天开始我们讲的是结构型模式中的组合模式。老规矩,讲解之前再次熟悉下结构型模式包含:代理模式、适配器模式、桥接模式、装饰器模式、外观模式、享元模式、组合模式,共7种设计模式。

组合模式(Composite Pattern)

定义

组合(Composite)模式:又叫“部分-整体”模式,它是一种将对象组合成树状的层次结构的模式,依据树形结构来组合对象,用来表示部分以及整体层次,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。

解决问题

它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦

实现    

  1. 透明方式:在该方式中,由于抽象构件声明了所有子类中的全部方法,所以客户端无须区别树叶对象和树枝对象,对客户端来说是透明的。但其缺点是:树叶构件本来没有 add()、remove() 及 getSubList() 方法,却要实现它们(空实现或抛异常),这样会带来一些安全性问题。

  2. 安全方式:在该方式中,将管理子构件的方法移到树枝构件中,抽象构

原文地址:https://blog.csdn.net/qq_18237141/article/details/135971998

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_64349.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注