1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Context c = new Context(new ConcreateStrategy1()); c.Method(); } } /* Strategy アルゴリズムだけ抜き出してアルゴリズムを切り替えやすくする。*/ class Context { private Strategy strategy = null; public Context(Strategy strategy) { this.strategy = this.strategy = strategy; } public void Method() { this.strategy.Method(); } } interface Strategy { void Method(); } class ConcreateStrategy1: Strategy { public void Method() { //アルゴリズム1 } } class ConcreateStrategy2 : Strategy { public void Method() { //アルゴリズム2 } } } |