首页 > 代码库 > DesignPattern_Structural_Composite

DesignPattern_Structural_Composite

void Main(){    Component root = new Composite();    Component nodeA = new Composite();    Component nodeB = new Composite();    root.Add(nodeA);    root.Add(nodeB);    root.Show(1);}abstract class Component{    public virtual void Show(int level){}    public abstract void Add(Component c);    public abstract void Remove(Component c);}class Composite:Component{    List<Component> components = new List<Component>();    public override void Add(Component c){components.Add(c);}    public override void Remove(Component c){components.Remove(c);}    public override void Show(int level){        base.Show(level);        foreach (var component in components)        {            component.Show(level+1);        }    }}class Leaf:Component{    public override void Add(Component c){throw new NotImplementedException();}    public override void Remove(Component c){throw new NotImplementedException();}}

 

DesignPattern_Structural_Composite