策略模式
策略模式 在框架方面与状态模式很相似,意图却略有不同。
客户端程序可以选择这些不同的算法。或在某中情况下,由Content来为你选择最合适的算法。该模式的目的是使得这些算法之间互换、并提供一种选择最合适算法的方式。
它可以相同的方式调用所有的算法。减少各种算法类与使用算法类之间的耦合
namespace Assets.StrategyPattern
{
/// <summary>抽象的算法类</summary>
public abstract class Strategy
{
/// <summary>算法方法</summary>
public abstract void AlgorithmInterface();
}
}
namespace Assets.StrategyPattern
{
class Content
{
/// <summary>策略对象</summary>
private Strategy strategy;
/// <summary>初始化策略对象</summary>
/// <param name="sta">策略对象参数</param>
public Content(Strategy sta)
{
this.strategy = sta;
}
/// <summary>接口.具体的策略对象,调用其具体的策略算法与方法</summary>
public void ContentInterface()
{
strategy.AlgorithmInterface();
}
}
}
namespace Assets.StrategyPattern
{
/// <summary>封装了具体的算法行为,继承抽象算法类</summary>
class A : Strategy
{
/// <summary>算法的具体实现</summary>
public override void AlgorithmInterface()
{
Debug.Log("A");
}
}
}
namespace Assets.StrategyPattern
{
/// <summary>封装了具体的算法行为,继承抽象算法类</summary>
class B : Strategy
{
/// <summary>算法的具体实现</summary>
public override void AlgorithmInterface()
{
Debug.Log("B");
}
}
}
Unity代码包下载 密码:cijw