组合模式
组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式,它是一种对象结构型模式。
适用场景
希望客户端可以忽略组合对象与单个对象的差异时
处理一个树形结构
优点
清楚地定义分层次的复杂对象,表示对象的全部或部分层次
让客户端忽略了层次的差异,方便对整个层次结构进行控制
简化客户端代码
符合开闭原则
缺点
限制类型时比较复杂
使设计变得更加抽象
下面我们引出一个应用场景,假设,我们有一个课程目录,如何使用组合模式在实现这个目录呢?
Golang Demo
Java Demo
补充另一个版本的Java/Scala Demo 以及源码解析
Java Demo_
Scala Demo
UML_
源码解析
Last updated
Was this helpful?