一看就懂的设计模式(四,策略模式)

当我们有很多算法策略时,比如商城根据不同节庆有不同的优惠活动,我们就会使用到不同的算法策略对商品进行优惠,就可以考虑用策略模式。
代码如下:

namespace DiagramMode
{
    class Program
    {
        static void Main(string[] args)
        {
            Context c ;
            //根据需求执行某一个策略
            c= new Context(new StrategyA());
            c.RunStrategyFunc();
            Console.ReadLine();
        }
    }

    /// <summary>
    /// 定义抽象策略类。
    /// </summary>
    public abstract class Strategy
    {
        public abstract void StrategyFunc();
    }
    //具体策略类
    public class StrategyA : Strategy
    {

        public override void StrategyFunc()
        {
            Console.WriteLine("执行具体策略A方法");
        }
    }

    public class StrategyB : Strategy
    {
        public override void StrategyFunc()
        {
            Console.WriteLine("执行具体策略B方法");
        }
    }
     /// <summary>
     /// 连接上下文,提供给客服端调用,根据传入的策略执行当前的策略方法
     /// </summary>
    public class Context
    {
        Strategy currStrategy;
        public Context(Strategy stra)
        {
            currStrategy = stra;
        }
        /// <summary>
        /// 执行当前具体的一个策略的方法
        /// </summary>
        public void RunStrategyFunc()
        {
            currStrategy.StrategyFunc();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值