zoukankan      html  css  js  c++  java
  • 通过代码来了解下java策略模式,消除if-else

     

    通过上图可以看出策略模式有以下角色构成:

    1、抽象策略(Strategy)角色:抽象策略角色由抽象类或接口来承担,它给出具体策略角色需要实现的接口;

    2、具体策略(ConcreteStrategy)角色:实现封装了具体的算法或行为;

    3、场景(Context)角色:持有抽象策略类的引用。

    策略模式重点是封装不同的算法和行为,不同的场景下可以相互替换。策略模式是开闭原则的体现,开闭原则讲的是一个软件实体应该对扩展开放对修改关 闭。策略模式在新的策略增加时,不会影响其他类的修改,增加了扩展性,也就是对扩展是开放的;对于场景来说,只依赖于抽象,而不依赖于具体实现,所以对修 改是关闭的。

    上面都是文字描述,下面通过简单的代码来进行直观的展示

     

     

     

     

     从此告别if-else ,上面的类别可以用枚举代替,这只是个例子,就不搞得那么正规了  - -!!

  • 相关阅读:
    vim 配合管道过滤多行记录
    SpringBoot自动配置原理
    SpringBoot零XML配置的Spring Boot Application
    SpringBoot快速开始Hello World
    Java反射机制
    Java网络编程
    Java JDBC
    Java泛型
    Java I/O
    Java集合
  • 原文地址:https://www.cnblogs.com/xiaokangk/p/12851657.html
Copyright © 2011-2022 走看看