Unity中的策略模式

策略模式主要用於遊戲中的數值計算。爲不同角色的相同方法提供統一的接口。方便管理。

using UnityEngine;

public class Test : MonoBehaviour
{
    private void Start()
    {
        StrategyContext strategyContext = new StrategyContext(new ConcreteStrategyA());
        strategyContext.Do();
        strategyContext.Strategy=new ConcreteStrategyB();
        strategyContext.Do();
    }
}

public class StrategyContext
{
    private IStrategy _strategy;

    public IStrategy Strategy
    {
        get { return _strategy; }
        set { _strategy = value; }
    }

    public StrategyContext(IStrategy strategy)
    {
        _strategy = strategy;
    }

    public void Do()
    {
        _strategy.Calculate();
    }
}

public interface IStrategy
{
    void Calculate();
}

public class ConcreteStrategyA : IStrategy
{
    public void Calculate()
    {
        Debug.Log("a計算");
    }
}

public class ConcreteStrategyB : IStrategy
{
    public void Calculate()
    {
        Debug.Log("b計算");
    }
}

public class ConcreteStrategyC : IStrategy
{
    public void Calculate()
    {
        Debug.Log("c計算");
    }
}

 

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