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();
            }
        }
  • 相关阅读:
    [BZOJ2179]FFT快速傅立叶
    [UOJ#34]多项式乘法
    [BZOJ4636]蒟蒻的数列
    [BZOJ4632]树的编码
    [BZOJ1070][SCOI2007]修车
    [BZOJ1529][POI2005]ska Piggy banks
    [BZOJ2654]tree
    腾讯应用管理中心,腾讯开放平台应用认领
    Sony/索尼 NW-ZX300A ZX300 无损音乐播放器4.4口
    read progress
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9103528.html
Copyright © 2011-2022 走看看