策略模式+工厂方法 实现多分支操作(代替多个if else)

          前两天领导提出问题说要用设计模式代替多个if else分支的情况,当时自己的第一反应是责任链模式(当时也有人回答责任联模式,回头想想好像从某种方面来说也没什么问题,责任链模式本来就是从第一责任诸个判断和if else好像完全匹配。。。。剩下的一会儿再说),但最后给出来的答案是策略模式。

        先啰嗦两句策略模式和责任链模式的选择,责任链的问题貌似就是纠结在了逐个判断操作上,如果责任链很长的话对系统的性能消耗比较大,而策略模式则可以直接分配到具体的方法执行。后来自己也查询了一些博客等资料,策略模式好像也不是适应所有的if else(毕竟写个设计模式也是很麻烦的有时候确实不必要。。),策略模式一般都是使用在不同策略(不同if else 方法体内容)比较复杂或者要执行不同操作等,分别需要大段代码的情况。

       总结:一般在分支操作比较复杂的情况下, 策略模式+工厂模式 结合使用(下面是自己写的练习例子)



1.先写一个策略接口,后面所有策略要实现他

package study.strategy;
/**
 * 策略接口
 * @author dell
 *
 */
public interface Strategy {
    //执行的方法,由于java中方法的执行,对象会根据具体类型执行对应子类的方法,所以实际实现中会执行对应子类的方法(自认为这个原理是策略模式的根本)
    public void operate();
}


2.编写具体策略类,具体策略中实现接口的方法,写出具体策略方案

package stu

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值