定义
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端可以统一对待单个对象和组合对象。
应用场景
组合模式适用于以下场景:
- 表达对象的部分-整体层次结构:当你想要表示对象的部分-整体层次结构时,可以使用组合模式。
- 希望客户端忽略组合对象与单个对象的差异:当你希望客户端代码一致地处理简单和复合对象时,组合模式是一个好的选择。
- 构建复杂的对象:可以通过简单对象的组合递归地构建复杂对象。
示例与反例
示例:
考虑一个图形编辑器,可以画出形状,这些形状可以是简单的(如圆形、矩形),也可以是复杂的(如图形组合)。
// 图形接口
interface Graphic {
void draw(