核心主旨:
1.根据代码的复杂程度,重构和模式也会带赖开销
2.解耦
3.过滤器、责任链等等也是为了解耦if--else。只不过是放在多个处理层(纵向层,比如有多哥过滤器横向排列 -->|--> |--> |-->)上进行条件判断,每经过一层过滤掉一些条件的判断。
4.所有涉及模式都可以看做是在解耦if..else 在面向对象的世界里OO的程度要看有多少if--else。
卫语句
当很多判断条件代码都走不到而真正执行的只有很少的情况的时候,使用卫语句将其他条件排除,处理方法有两种,1返回结果2抛异常。总之不再往下执行。
方法封装
if..else中嵌套很多代码的情况下,将代码块抽到方法里,直观,便于阅读,修改也直观,属于同一层上的逻辑判断
策略模式
创建一个执行策略类用到不通的分支的时候创建不通的对象来实现,这种方式省不了if---else判断,但是可以将条件和方法解耦。相当于将不同的策略进行封装。当需求变化的时候修改某一种策略不影响其他策略。增加新的策略的时候也会增加薪的else分支。也相当于在同一层上做逻辑判断.达到了在运行期间修改实现类的效果。
工厂模式
使用工厂方式将选择分支从主逻辑分支换到了创建对象的工厂类而已,可以和策略模式结合使用。好处是修改条件判断只需要到工厂类中进行修改。增加策略的时候也只是在工厂方法中增加一个条件判断。并不需要修改公众的主逻辑分支
状态模式
状态模式体现每一种状态到另外一种状态的流转,主要用户已知左右状态和流转关系的情况,借用实现类封装了大量流转的业务逻辑实现。也是对条件的一种解耦。
声明:部分内容可能来源于网络,但是时间太久加上没有存档,如有侵权请给链接自会附上链接
网友评论