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

    1 策略模式
    1〉建立业务的抽象类;
    2〉各业务类继承抽象类,覆盖抽象方法;
    3〉建立策略类,根据传入的不同业务,生成不同的业务类对象
    4〉客户端生成策略,调用策略方法;


    1〉建立业务的抽象类;
    class CashSuper
    {
      public class abstract Double accepCash(double money);
    }
    2〉各业务类继承抽象类,覆盖抽象方法;
    class normal:CashSuper
    {
      public override double accepCash(double money)
     {
       return money;
     }

    class rebate:CashSuper
    {
      public double rebateMoney=0;
      public double cashRebate(string money)
      {
        this.rebateMoney=money;
      }
      public override double accepCash(double money)
      {
        double result=0
        result=money * rebateMoney;
      }
    }
    }
    3〉建立策略类,根据传入的不同业务,生成不同的业务类对象
    class CashContext
      {
        CashSuper cs=null;
        public CashContext(string selecttype)
        {
           switch(selecttype)
            {
              case"normal":
                {
                 cs=new CashNormal();
                 break;         
                }
              case"0.7":
                {
                 cs=new CashRebate("0.7);
                 break;
                }
            }
        }

        public double Result(double money)
        {
              cs.accepCash(money);
        }
      }
    4〉客户端生成策略,调用策略方法;
       CashContext cc=new CashContext(this.drplist.SelectItem.Text)
       cc.Result(Convert.ToDouble(this.txtNum.text)* Convert.ToDouble(this.txtPrices.Text)));

  • 相关阅读:
    编写代码实现图片懒加载
    原型链
    算法问题:获取字符串中,不重复的且最长字符串的长度
    ES6 的 Set 方法
    Vue 的生命周期
    关于 Web 前端的各种优化
    JS 排序算法,冒泡排序,插入排序,选择排序,归并排序,sort排序
    web 的 XSS 和 CSRF 攻击
    TCP 的三次握手和四次挥手
    理解 四种清除浮动的方法
  • 原文地址:https://www.cnblogs.com/csj007523/p/1684638.html
Copyright © 2011-2022 走看看