Unity3D中的組合模式

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);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章