一看就懂的設計模式(四,策略模式)
阿新 • • 發佈:2019-02-16
namespace DiagramMode
{
class Program
{
static void Main(string[] args)
{
Context c ;
//根據需求執行某一個策略
c= new Context(new StrategyA());
c.RunStrategyFunc();
Console.ReadLine();
}
}
/// <summary>
/// 定義抽象策略類。
/// </summary>
public abstract class Strategy
{
public abstract void StrategyFunc();
}
//具體策略類
public class StrategyA : Strategy
{
public override void StrategyFunc()
{
Console.WriteLine("執行具體策略A方法");
}
}
public class StrategyB : Strategy
{
public override void StrategyFunc()
{
Console.WriteLine("執行具體策略B方法");
}
}
/// <summary>
/// 連線上下文,提供給客服端呼叫,根據傳入的策略執行當前的策略方法
/// </summary>
public class Context
{
Strategy currStrategy;
public Context(Strategy stra)
{
currStrategy = stra;
}
/// <summary>
/// 執行當前具體的一個策略的方法
/// </summary>
public void RunStrategyFunc()
{
currStrategy.StrategyFunc();
}
}
}