1.概述
用字典+委托 取代策略模式
用字典<"key",委托>
优点:不用定义多个策略类,定义不同的函数就行。
缺点:缺点也就是优点,因为策略在同一类中,难以与其他功能区分开来。为了体现同类的函数,函数可以用同前缀或后缀的方式体现共性。
3.代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp24
{
class Program
{
delegate int StandChange(int state);
static void Main(string[] args)
{
Console.WriteLine("map 使用");
Program program = new Program();
program.main();
Console.ReadKey();
}
private void main() {
Dictionary<string, StandChange> keyValuePairs = new Dictionary<string, StandChange>();
keyValuePairs.Add("Add", Add);
keyValuePairs.Add("Cheng", Cheng);
StandChange yunsuan = keyValuePairs["Add"];
int ret = 0;
ret = yunsuan(4);
Console.WriteLine(ret);
yunsuan = keyValuePairs["Cheng"];
ret = yunsuan(4);
Console.WriteLine(ret);
}
private int Add(int a) {
return a + a;
}
private int Cheng(int a)
{
return a * a;
}
}
}
3.运行效果