客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。

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

public interface IBox

{

  void Process();

  void Add(IBox box);

  void Remove(IBox box);

}

public class SingleBox extends IBox

{

  void Process(){};

  void Add(IBox box){ throw UnsurppotException;}

  void Remove(IBox box){ throw UnsurppotException;}

}

public class ContainerBox extends IBox

{

  ArrayList list = null;

  void Add(IBox box){};

  void Remove(IBox box){};

  void Process()

  {

    if(list!=null)

    {

      foreach(IBox box in list)

      {

        box.Process();

      }

    }

  }

}

class App

{

  void main()

  {

    IBox box = Factory.GetBox();

    box.Process();

  }

}

Composite模式的几个要点

Composite模式采用树形结构来实现普遍存在的对象容器,从而将一对多的关系转化为一对一的关系,使得客户代码可以一致地处理对象和对象容器,无需关心处理的是单个的对象,还是组合的对象容器。

将客户代码与复杂的对象容器结构解耦是composite模式的核心思想,解耦之后,客户代码将与纯粹的抽象接口,而非对象容器的复杂内部实现结构,发生依赖关系,从而更能应对变化。

composite模式中,是将Add和remove等和对象容器相关的方法定义在表示抽象对象的

转载于:https://www.cnblogs.com/hyp5490-/p/3803640.html

组合模式Composite相关推荐

  1. 【设计模式】组合模式 Composite Pattern

    树形结构是软件行业很常见的一种结构,几乎随处可见,  比如: HTML 页面中的DOM,产品的分类,通常一些应用或网站的菜单,Windows Form 中的控件继承关系,Android中的View继承 ...

  2. 【结构型】组合模式(Composite)

    目录 组合模式(Composite) 适用场景 组合模式实例代码(Java) 组合模式(Composite) 将对象组合成树型结构以表示"部分-整体"的层次结构.Composite ...

  3. 结构型 组合模式 Composite

    Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使 用具有一致性. Mary今天过生日."我过生日,你要送我一件礼物. ...

  4. 设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)

    组合模式 Composite 树状结构专用模式   递归遍历结构

  5. Java设计模式 —— 组合模式(Composite)

    Java设计模式 -- 组合模式(Composite) 定义 Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性. ...

  6. 设计模式(17):结构型-组合模式(Composite)(2)

    设计模式(Design pattern) 是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式 ...

  7. 【设计模式自习室】结构型:组合模式 Composite

    前言 <设计模式自习室>系列,顾名思义,本系列文章带你温习常见的设计模式.主要内容有: 该模式的介绍,包括: 引子.意图(大白话解释) 类图.时序图(理论规范) 该模式的代码示例:熟悉该模 ...

  8. 设计模式之组合模式(Composite)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. 组合模式(Composite Pattern)

    组合模式概述 定义:组合多个对象形成树形结构以表示具有部分-整体关系的层次结构.组合模式让客户端可以统一对待单个对象和组合对象.又被成为"部分-整体"(Part-Whole)模式, ...

  10. 组合模式(Composite)

    1.概念 组合模式将对象组合成树形结构以表示"部分-整体"的层次结构.它使得客户对单个对象和复合对象的使用具有一致性,属于结构性模式. 2.模式结构 Component:组合中的对 ...

最新文章

  1. 基于fedora23的karora23初始版本安装crt信赖libpng升级glibc造成系统无法进入...
  2. mysql 赋给用户权限 grant all privileges on
  3. Android -- 自定义权限
  4. linux 测试cpu计算圆周率_Linux下测试CPU性能
  5. 精通ASP.NET MVC ——模型验证
  6. [Design-Pattern]工厂模式
  7. tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
  8. Waymo也商业化了!“早期乘客”项目开始测试收费,凤凰城人民掏了腰包
  9. 微信的发展堪称疯狂,这 7 点值得所有人学习
  10. java 数学公式解析_JAVA 文本表达式解析成数学公式,计算出结果
  11. 加号和减号在一起怎么读_数学符号里的“加减”是“±”,那么“减加”怎么打?求高手!!!!!!!!! word中加号和减号放在一起怎么打出来?...
  12. UE4C++新建文件夹
  13. 英特尔发布三代服务器芯片至强,英特尔发布第三代至强处理器:10nm Ice Lake架构、最高40核、AI和安全性增强...
  14. Mac苹果键盘多个按键没响应该如何解决呢
  15. 20211229[按秩合并并查集 最小生成树][BZOJ4668]冷战
  16. 道一云OA系统排名?道一云OA办公系统怎么选?什么是用户口碑最好的道一云OA系统?
  17. [计算机网络] --- RSTP运行原理及配置
  18. flask之flash
  19. 真约数求法 c语言,数学:求一个数的真约数(因数)的个数及所有约数之和
  20. 华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考

热门文章

  1. pytorch模型初始化
  2. caffe中 solver.prototxt文件
  3. 【RBM】受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) 简介
  4. yolov4-tiny目标检测模型实战——学生姿势行为检测
  5. 如何使用更多数据更新神经网络模型
  6. ETL利器----Kettle实战应用
  7. rsr分档matlab,matlab练习程序(dubins曲线)
  8. matlab bar 填充花纹,科学网—使用matlab绘画柱状图,且使用不同的图案填充 - 时杰的博文...
  9. 小米商城抢购脚本_小米十周年感恩季-816活动攻略
  10. thinkphp 访问根目录文件