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.运行效果

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐