zoukankan      html  css  js  c++  java
  • 设计模式3—策略模式【行为型】

    https://www.cnblogs.com/zooboo/p/9556212.html

    1、参考例子:

    var obj = {
            "A": function(salary) {
                return salary * 4;
            },
            "B" : function(salary) {
                return salary * 3;
            },
            "C" : function(salary) {
                return salary * 2;
            } 
    };
    var calculateBouns =function(level,salary) {
        return obj[level](salary);
    };
    console.log(calculateBouns('A',10000)); // 40000

    【以上面例子说明】策略模式的目的就是将 算法的使用算法的实现 分离开来。体现在代码中,就是用一个单独的对象,封装所有的 算法实现

            因为,算法最后都会返回一个值,所以使用结果是一样的,这样 封装 一个 调度 算法的函数【根据参数,自动使用相应的算法】。

    个人理解:策略模式,就是 将多种执行任务 写在一个对象下,由一个 函数 统一调度这些任务。调度方法,一次只能调度一个任务;如果要调度多个方法,应该生成一个新的任务。

         在任务里面 可以组合多个任务。

    2、策略模式实际使用场景:

      a、表单验证中的使用。   【参考   实际模式的书籍】

    3、使用策略模式的优点如下:

    优点:1. 策略模式利用组合,委托等技术和思想,有效的避免很多if条件语句

               2. 策略模式提供了开放-封闭原则,使代码更容易理解和扩展

               3. 策略模式中的代码可以复用。

  • 相关阅读:
    Step By Step(C++模板类)
    Step By Step(C++模板重载和特化)
    Step By Step(C++模板推演)
    Step By Step(C++模板Policy)
    Step By Step(C++模板参数)
    Step By Step(C++模板解析)
    Step By Step(C++模板Trait)
    Step By Step(C++模板基本技巧)
    离职引发的诸多感触
    Step By Step(C++模板函数)
  • 原文地址:https://www.cnblogs.com/wfblog/p/14395267.html
Copyright © 2011-2022 走看看