组合模式Composite
客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。
将对象组合成树形结构以表示部分-整体的层次结构。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相关推荐
- 【设计模式】组合模式 Composite Pattern
树形结构是软件行业很常见的一种结构,几乎随处可见, 比如: HTML 页面中的DOM,产品的分类,通常一些应用或网站的菜单,Windows Form 中的控件继承关系,Android中的View继承 ...
- 【结构型】组合模式(Composite)
目录 组合模式(Composite) 适用场景 组合模式实例代码(Java) 组合模式(Composite) 将对象组合成树型结构以表示"部分-整体"的层次结构.Composite ...
- 结构型 组合模式 Composite
Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使 用具有一致性. Mary今天过生日."我过生日,你要送我一件礼物. ...
- 设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)
组合模式 Composite 树状结构专用模式 递归遍历结构
- Java设计模式 —— 组合模式(Composite)
Java设计模式 -- 组合模式(Composite) 定义 Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性. ...
- 设计模式(17):结构型-组合模式(Composite)(2)
设计模式(Design pattern) 是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式 ...
- 【设计模式自习室】结构型:组合模式 Composite
前言 <设计模式自习室>系列,顾名思义,本系列文章带你温习常见的设计模式.主要内容有: 该模式的介绍,包括: 引子.意图(大白话解释) 类图.时序图(理论规范) 该模式的代码示例:熟悉该模 ...
- 设计模式之组合模式(Composite)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 组合模式(Composite Pattern)
组合模式概述 定义:组合多个对象形成树形结构以表示具有部分-整体关系的层次结构.组合模式让客户端可以统一对待单个对象和组合对象.又被成为"部分-整体"(Part-Whole)模式, ...
- 组合模式(Composite)
1.概念 组合模式将对象组合成树形结构以表示"部分-整体"的层次结构.它使得客户对单个对象和复合对象的使用具有一致性,属于结构性模式. 2.模式结构 Component:组合中的对 ...
最新文章
- 基于fedora23的karora23初始版本安装crt信赖libpng升级glibc造成系统无法进入...
- mysql 赋给用户权限 grant all privileges on
- Android -- 自定义权限
- linux 测试cpu计算圆周率_Linux下测试CPU性能
- 精通ASP.NET MVC ——模型验证
- [Design-Pattern]工厂模式
- tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
- Waymo也商业化了!“早期乘客”项目开始测试收费,凤凰城人民掏了腰包
- 微信的发展堪称疯狂,这 7 点值得所有人学习
- java 数学公式解析_JAVA 文本表达式解析成数学公式,计算出结果
- 加号和减号在一起怎么读_数学符号里的“加减”是“±”,那么“减加”怎么打?求高手!!!!!!!!! word中加号和减号放在一起怎么打出来?...
- UE4C++新建文件夹
- 英特尔发布三代服务器芯片至强,英特尔发布第三代至强处理器:10nm Ice Lake架构、最高40核、AI和安全性增强...
- Mac苹果键盘多个按键没响应该如何解决呢
- 20211229[按秩合并并查集 最小生成树][BZOJ4668]冷战
- 道一云OA系统排名?道一云OA办公系统怎么选?什么是用户口碑最好的道一云OA系统?
- [计算机网络] --- RSTP运行原理及配置
- flask之flash
- 真约数求法 c语言,数学:求一个数的真约数(因数)的个数及所有约数之和
- 华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考
热门文章
- pytorch模型初始化
- caffe中 solver.prototxt文件
- 【RBM】受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) 简介
- yolov4-tiny目标检测模型实战——学生姿势行为检测
- 如何使用更多数据更新神经网络模型
- ETL利器----Kettle实战应用
- rsr分档matlab,matlab练习程序(dubins曲线)
- matlab bar 填充花纹,科学网—使用matlab绘画柱状图,且使用不同的图案填充 - 时杰的博文...
- 小米商城抢购脚本_小米十周年感恩季-816活动攻略
- thinkphp 访问根目录文件