美文网首页
ddu-策略模式和模板方法

ddu-策略模式和模板方法

作者: 小董666 | 来源:发表于2016-07-13 16:06 被阅读0次

策略模式的简单实现

  • 使不同的算法可以被相互替换,而不影响客户端的使用。

通常如果一个问题有多个解决方案或者稍有区别的操作时,最简单的方式就是利用if-else or switch-case方式来解决,对于简单的解决方案这样做无疑是比较简单、方便、快捷的,但是如果解决方案中包括大量的处理逻辑需要封装,或者处理方式变动较大的时候则就显得混乱、复杂,而策略模式则很好的解决了这样的问题,它将各种方案分离开来,让操作者根据具体的需求来动态的选择不同的策略方案。 这里以简单的计算操作(+、-、、/)作为示例:
Calc:进行计算操作的上下文环境。
Strategy : 计算操作的抽象。
AddStrategy、SubStrategy、MultiStrategy、DivStrategy : 具体的 +、-、
、/ 实现。

  • 策略模式 以 = - * / 为例
    interface ICaculate{
    //计算的接口
    String startCaculate(String a,String b);
    }
    public class Strategy {
    private ICaculate strategy;
    public void setStrategy(ICaculate strategy) {
    this.strategy = strategy;
    }

         public String calcualate(String a, String b){
             return strategy.startCaculate(a,b);
         }
     }
     class Plus implements  ICaculate{
    
         @Override
         public String startCaculate(String a, String b) {
             return a+b;
         }
     }
     class test{
         public static void main(String[]ary){
         Strategy strategy=new Strategy();
         strategy.setStrategy(new Plus());
         strategy.calcualate("!","wew");
       }
     }
    
  • 模板方法:
    抽象类定义统一的规则,使子类在不改变结构是可以修改自己的实现方法。
    模板方法模式的主要思想:定义一个算法流程,将一些特定步骤的具体实现、延迟到子类。
    使得可以在不改变算法流程的情况下,通过不同的子类、来实现“定制”流程中的特定的步骤

AbstractClass : 抽象类,定义了一套算法框架。
ConcreteClass1 : 具体实现类1;
ConcreteClass2: 具体实现类2;

不同对象的方法执行不一样,但是总体的调用方法流程一样。

相关文章

  • ddu-策略模式和模板方法

    策略模式的简单实现 使不同的算法可以被相互替换,而不影响客户端的使用。 通常如果一个问题有多个解决方案或者稍有区别...

  • 各种设计模式总结和对比

    模板方法模式和策略模式 1、模板方法和策略模式都有封装算法。2、策略模式是使不同算法可以相互替换,且不影响客户端应...

  • 设计模式--策略模式

    目录 本文的结构如下: 引言 什么是策略模式 模式的结构 典型代码 代码示例 策略模式和模板方法模式的区别 优点和...

  • 设计模式

    策略模式 接口 模板方法模式 抽象类 代理模式 接口

  • java8 in action:第8章学习,Lambda重构面向

    匿名类和Lamda中的this区别### 策略模式### 模板方法### 观察者模式### 责任链模式### La...

  • 五、行为型模式

    用来对类或对象怎样交互和怎样分配职责进行描述 1.模板方法2.命令模式3.策略模式4.观察者模式 1.模板方法 1...

  • spring框架中的设计模式二

    在这篇文章中,介绍4种设计模式。结构型设计模式:代理和复合模式。行为型设计模式:策略和模板方法模式。 代理模式 面...

  • 常见六种设计模式.2018-08-01

    单例模式 工厂模式 策略模式 观察者模式 迭代器模式 模板方法模式 https://www.jianshu.com...

  • JS 设计模式

    工厂模式 单体模式 模块模式 代理模式 职责链模式 命令模式 模板方法模式 策略模式 发布-订阅模式 中介者模式 ...

  • 设计模式《策略模式》

    引言   继续上一节的模板方法模式,这节我们来说说策略模式。 示例地址   Demo 先看类图 看看策略模式的定义...

网友评论

      本文标题:ddu-策略模式和模板方法

      本文链接:https://www.haomeiwen.com/subject/ljxhjttx.html