C#設計模式-策略模式
阿新 • • 發佈:2018-12-18
using System; using System.Collections.Generic; namespace TestCSharp { class Program { // client needs to know the state in the strategy mode. while in the state mode, it is no need to know. static void Main(string[] args) { AIContext context = new AIContext(); context.CurStrategy = new AggressiveBot(); context.Execute(); context.CurStrategy = new DefensiveBot(); context.Execute(); Console.ReadKey(); } abstract class Strategy { public abstract void Execute(); } class AggressiveBot : Strategy { public override void Execute() { Console.WriteLine("Attack"); } } class DefensiveBot : Strategy { public override void Execute() { Console.WriteLine("Defense"); } } class AIContext { public Strategy CurStrategy{ set; get; } public void Execute() { if (CurStrategy == null) { return; } CurStrategy.Execute(); } } } }