我正在看这个,http://en.wikipedia.org/wiki/Strategy_pattern,我理解战略模式的概念,但有人可以解释一下C#的例子.
我真的不知道在Context类中定义"策略"的方式和原因,为什么它Func<T, T, T>
只是两个参数传递给例如8,9?
static void Main(string[] args)
{
var context = new Context<int>();
// Delegate
var concreteStrategy1 = new Func<int, int, int>(PerformLogicalBitwiseOr);
// Anonymous Delegate
var concreteStrategy2 = new Func<int, int, int>(
delegate(int op1, int op2)
{
return op1 & op2;
});
// Lambda Expressions
var concreteStrategy3 = new Func<int, int, int>((op1, op2) => op1 >> op2);
var concreteStrategy4 = new Func<int, int, int>((op1, op2) => op1 << op2);
context.Strategy = concreteStrategy1;
var result1 = …
Run Code Online (Sandbox Code Playgroud)