美文网首页
设计模式-合成模式

设计模式-合成模式

作者: 超_621b | 来源:发表于2019-03-23 17:50 被阅读0次

 

什么是合成模式?

合成(Composite)模式也称组合模式,合成模式是一组对象的组合,这些对象可以是容器对象,表现为组的概念。另外一些对象代表了单对象,或称叶子对象。

合成模式的意图

保证客户端调用单对象与组合对象的一致性。


合成模式的适用场景

如树形菜单、文件及文件夹管理。


合成模式的优点&缺点

优点:高层模块调用简单, 节点自由增加。

缺点:在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。

合成模式类图

合成模式特点

1)组对象允许包含单对象,也可以再包含其他的组对象(常见的错误是将组对象设计为只允许包含叶子对象)。                                                            

2)组合对象和单对象定义共同的行为。

结合这两点。就可以为组对象与单对象定义统一类型,并将该组对象建模为包含同等类型的集合。

举个栗子

下面以公司的组织形式为例。

阿里巴巴集团下面很多子公司,阿里妈妈、淘宝、天猫、阿里云等等,每个公司都有自己的部门和主要提供的服务,比如阿里巴巴主要提供B2B,淘宝主要是C2C,天猫主要是C2C,阿里云就是云计算服务了。每个公司都是独立的子公司,所以也就有着自己的研发部门、人力资源部门、市场部门等。

公司抽象类

公司实现类

部门类

测试类

运行结果

 

小农总结

组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以向处理简单元素一样处理复杂元素,想要创建层次结构,组合模式是最理想的选择。


相关文章

  • 设计模式之合成模式

    @(架构之路之设计模式代码) 设计模式之合成模式 欢迎关注作者简书csdn传送门 [TOC]   合成模式属于对象...

  • Java设计模式之08_Composite(组合模式)

    更多Java设计模式:Java设计模式-目录 一、定义 组合模式(Composite Pattern)也叫合成模式...

  • 8、结构型模式-组合设计模式

    1、将对象组合成树形结构的模式-组合设计模式 组合设计模式又叫部分整体模式,将对象组合成树形结构以表示“部分-整体...

  • 设计模式-合成模式

    合成模式又叫整体部分模式,是将对象组织到一个树的结构中,用来描述整体与部分的关系。换句话说,用树结构表示整体与部分...

  • 设计模式-合成模式

    什么是合成模式? 合成(Composite)模式也称组合模式,合成模式是一组对象的组合,这些对象可以是容器对象,表...

  • 二十三种设计模式包括工厂模式、建造者模式、工厂方法模式、原始模型模式、单例模式、适配器模式、桥梁模式、合成模式、装...

  • 设计模式之合成(Composite)模式

    场景:数据流向:kafka-->spark-->es。其中spark数据处理会有过滤,etl等步骤,需求不同,搭配...

  • 设计模式-之合成模式(三)

    什么是合成模式?   合成(Composite)模式也称组合模式,合成模式是一组对象的组合,这些对象可以是容器对象...

  • java设计模式-组合模式(合成模式 Composite)

    定义 属于对象的结构模式,有时又叫做“部分——整体”模式。组合模式将对象组织到树结构中,可以用来描述整体和部分的关...

  • 补-设计模式-之合成模式(三)

    什么是合成模式?   合成(Composite)模式也称组合模式,合成模式是一组对象的组合,这些对象可以是容器对象...

网友评论

      本文标题:设计模式-合成模式

      本文链接:https://www.haomeiwen.com/subject/kdnsvqtx.html