251018 thinking composite
1. 什么是组合模式
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示“部分-整体”的层次关系。组合模式使得客户端可以统一地处理个别对象和对象组合。
2. 为什么需要组合模式
组合最主要的功能是在整个树状结构上递归调用方法并对结果进行汇总。
3. 组合模式的实现(go)
假定一个文件系统,其中包含文件和目录。目录可以包含其他文件和目录。
现在我们需要搜索文件系统中是否包含某个文件。
1 | type Component interface { |
客户端代码
1 | func main() { |
类图
classDiagram
class Component {
<<interface>>
+Search(keyword string)
}
class Directory {
+Name string
-children []Component
+Add(child Component)
+Search(keyword string)
}
class File {
+Name string
+Search(keyword string)
}
Component <|.. Directory
Component <|.. File
Directory "1" o-- "n" Component
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Elian's blog page!