将对象组合成树形结构以表示“部分-整体'的层次结构”。组合模式使得用户对单个对象和组合对象的使用具有一致性。
操作部分和操作整体的方法一样。
abstract class Component
{
protected string _name;
public Component(string name)
{
_name = name;
}
public abstract void Add(Component component);
public abstract void Remove(Component component);
public abstract void Display(int depth);
}
class Leaf : Component
{
public Leaf(string name):base(name){}
public override void Add(Component component) { }
public override void Display(int depth)
{
Console.WriteLine(new string('-', depth) + _name);
}
public override void Remove(Component component) { }
}
class Composite : Component
{
private List<Component> _components;
public Composite