设计模式:组合模式

时间:2024-04-14 10:24:08

定义

组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端可以统一对待单个对象和组合对象。

应用场景

组合模式适用于以下场景:

  1. 表达对象的部分-整体层次结构:当你想要表示对象的部分-整体层次结构时,可以使用组合模式。
  2. 希望客户端忽略组合对象与单个对象的差异:当你希望客户端代码一致地处理简单和复合对象时,组合模式是一个好的选择。
  3. 构建复杂的对象:可以通过简单对象的组合递归地构建复杂对象。

示例与反例

示例

考虑一个图形编辑器,可以画出形状,这些形状可以是简单的(如圆形、矩形),也可以是复杂的(如图形组合)。

// 图形接口
interface Graphic {
   
    void draw(