程序设计中有一些 事物是由相似的子事物 构成的例子
定义
回顾过去的命令模式,有一些命令里面包含了一个序列的操作,如果你玩魔兽世界或者类似的 MMO 游戏,里面你会用到 宏指令,就是一个指令包含了一系列操作
那么这个 Macro Command 整合了几个不同的指令对象,形成了一个 树状结构,这就使得我们可以方便地描述 对象部分-整体层次结构 了
举例
这里使用 C# 举例,叶子和容器都属于 Component 类,具有多态性又具有统一性,所以客户调用时无需关注调用的是 组合 还是 子对象!
using System;
using System.Collections.Generic;
// 组件接口
public abstract class Component
{
protected string name;
public Component(string name)
{
this.name = name;
}
public abstract void PerformAction();
}
// 叶子组件
public class Leaf : Component
{
public Leaf(