还是那几句话:

学无止境,精益求精

十年河东,十年河西,莫欺少年穷

学历代表你的过去,能力代表你的现在,学习代表你的将来

废话不多说,直接进入正题:

首先按照大话设计模式的解释,在这里也总结下策略模式的概念:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户!

具体的实现代码为:

namespace SJMS
{
    /// <summary>
    /// 抽象算法类
    /// </summary>
    public abstract class Strategy
    {
        /// <summary>
        /// 抽象算法
        /// </summary>
        public abstract void AlgorithmInterface();
    }

    /// <summary>
    /// 具体算法A
    /// </summary>
    public class ConcreteStrategyA : Strategy
    {
        /// <summary>
        /// 算法A的具体实现方法
        /// </summary>
        public override void AlgorithmInterface()
        {
            Console.WriteLine("算法A的具体方法");
        }
    }

    /// <summary>
    /// 具体算法B
    /// </summary>
    public class ConcreteStrategyB : Strategy
    {
        /// <summary>
        /// 算法B的具体实现方法
        /// </summary>
        public override void AlgorithmInterface()
        {
            Console.WriteLine("算法B的具体方法");
        }
    }

    /// <summary>
    /// 抽象算法C
    /// </summary>
    public class ConcreteStrategyC : Strategy
    {
        /// <summary>
        /// 算法C的具体实现方法
        /// </summary>
        public override void AlgorithmInterface()
        {
            Console.WriteLine("算法C的具体方法");
        }
    }

    
    public class Context
    {
        private Strategy _strategy;
        /// <summary>
        /// 用于维护抽象算法类对象
        /// </summary>
        public Context(Strategy strategy)
        {
            this._strategy = strategy;
        }

        /// <summary>
        /// 根据维护的不同对象,调用对应的算法
        /// </summary>
        public void ContextInterface()
        {
            _strategy.AlgorithmInterface();
        }
    }
}
View Code

相关文章:

  • 2021-05-04
  • 2022-01-05
  • 2022-12-23
  • 2021-07-18
  • 2021-07-07
  • 2021-08-12
猜你喜欢
  • 2021-04-11
  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案