var dict = new Dictionary<string, PrintStrategy> { {"Asus", new AsusStrategy() }, {"Apple", new AppleStrategy() }, }; var asus = dict["Asus"]; var apple = dict["Apple"];
printer.SetStrategy(apple); printer.Print();
printer.SetStrategy(asus); printer.Print();
Console.ReadLine();
interface PrintStrategy { void Print(); }
class AsusStrategy : PrintStrategy { public void Print() { Console.WriteLine("Asus"); } }
class AppleStrategy : PrintStrategy { public void Print() { Console.WriteLine("Apple"); } }
class Printer { private PrintStrategy _printStrategy; public Printer() { _printStrategy = new AppleStrategy(); }
//應該也可以在建構子強制讓人設定策略 public void SetStrategy(PrintStrategy printStrategy) { _printStrategy = printStrategy; }