c#-Dictionary+delegate 取代策略模式 简单实验

20 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值