设计模式 之 组合模式

发布于: 2020 年 06 月 24 日
设计模式 之  组合模式

因为自己在平常编码过程中并没有使用过组合模式,对这种设计模式知之甚少。听了李老师的课,还是有些云里雾里的感觉,于是又去翻看了小争哥的设计模式之美专栏中的组合模式,才在脑中对组合模式有些感觉。

组合模式,是结构型设计模式之一。因为使用场景比较受限,所以日常中并不那么常用。

组合模式要求要处理的数据必须能表示成树形结构。一旦数据满足树形结构,应用这种设计模式就能发挥很大的作用,能让代码变得非常简洁。

就以老师上课作业为例。

题目中虽然设计众多组件,但究其本质而言就只有容器组件(非叶子结点)和基本组件(叶子节点)

利用组合模式的类图就如下所示:

UML代码如下:

@startuml
abstract class Component
class BaseComponent
class ContainerComponent
abstract class Component{
String name
String type
print()
}
class BaseComponent{
}
class ContainerComponent{
List subNodes
}
Component <|-- BaseComponent
Component <|-- ContainerComponent
@enduml

其实,组合模式很简单,:就是将一组对象(单独组件和容器组件)组织成树形结构,以表示一种‘部分 - 整体’的层次结构(组件之间的嵌套结构)。组合模式让客户端可以统一单个对象(基本组件)和组合对象(容器组件)的处理逻辑(递归遍历)。”

发布于: 2020 年 06 月 24 日 阅读数: 9
用户头像

南宫煌

关注

还未添加个人签名 2019.10.08 加入

还未添加个人简介

评论

发布
暂无评论
设计模式 之  组合模式