1、建立节点抽象基类。
using System.Collections.Generic;
public abstract class DMComponent
{
public List<DMComponent> componentSonList;
protected string mName;
public string Name
{
get
{
return mName;
}
}
public DMComponent(string name)
{
mName = name;
}
public abstract void AddComponent(DMComponent component);
public abstract void RemoveComponent(DMComponent component);
public abstract DMComponent GetComponent(int index);
}
2、建立叶子节点类。
public class DMLeaf : DMComponent
{
public DMLeaf(string name) : base(name) { }
public override void AddComponent(DMComponent component) { return; }
public override DMComponent GetComponent(int index) { return null; }
public override void RemoveComponent(DMComponent component) { return; }
}
3、建立分叉节点类
public class DMComposite : DMComponent
{
public DMComposite(string name) : base(name) { }
public override void AddComponent(DMComponent component)
{
componentSonList.Add(component);
}
public override DMComponent GetComponent(int index)
{
return componentSonList[index];
}
public override void RemoveComponent(DMComponent component)
{
componentSonList.Remove(component);
}
}