zoukankan      html  css  js  c++  java
  • 策略模式

    策略模式的使用场景:

    1.一个系统中有许多类,他们的区别在于行为不同,则可以通过策略模式,可以动态的让一个对象选择其中的一个。

    2.一个系统需要动态地在几种算法中选择一种。例如:打折、返佣等。

    3.可以将一些复杂的条件语句,使用策略模式简化。

    4.让客户端决定使用相应的策略模式。

    UML图:

    示例代码:

        public abstract class RedisHelper
        {
            public abstract string Get(string key);
        }
        public class StackExchageRedis : RedisHelper
        {
            public override string Get(string key)
            {
                return "通过StackExchage获取缓存";
            }
        }
        public class CSRedis : RedisHelper
        {
            public override string Get(string key)
            {
                return "通过CSRedis获取缓存";
            }
        }
        public class RedisContext
        {
            private RedisHelper redisHelper;
    
            public RedisContext(RedisHelper redisHelper)
            {
                this.redisHelper = redisHelper;
            }
    
            public string GetCache(string key)
            {
                return this.redisHelper.Get(key);
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                RedisContext context = new RedisContext(new StackExchageRedis());
                Console.WriteLine(context.GetCache("aa"));
    
                RedisContext contextA = new RedisContext(new CSRedis());
                Console.WriteLine(contextA.GetCache("aa"));
    
                Console.ReadKey();
            }
        }
  • 相关阅读:
    欧几里得 与 扩展欧几里得
    hdu-1559 最大子矩阵
    hdu-1081 To The Max (最大子矩阵和)
    Oracle处理排序问题
    报表犯的错误
    MySQL中汉字一二三排序问题
    MySQL复习
    帆软查看显示和填报显示
    MySQL某年查询12个月份的数据
    mysql中去日期格式
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9103528.html
Copyright © 2011-2022 走看看