if else 的代码重构

目录

  1. 不同状态下做不同的事情
  2. 页面上的if判断,不同情况输出不同的内容
  3. 不同状态之间转换-状态模式的应用
  4. 不能根据一个状态找到处理者, 则每个都尝试一下 -  责任链模式

 

正文

  • 状态值的if判断

重构后的代码

  • 页面上的if判断

修改后,将业务逻辑移到java层, 采用MVC

  

 

 

  • 不同状态之间转换-状态模式的应用

业务场景:

 以传送带的门为例,考虑其状态变化过程为:传送带的门由单个按钮控制,并且假设初始时处于关闭状态。按一下按钮门开始打开,如果在门完全打开之前再次按下按钮,门开始关闭。一旦门完全打开,它将在2秒延时之后自动开始关闭过程。要禁止门自动关闭,可以在门打开之后按一下按钮。下图描述了传送门的状态变化情况

可能的代码

 

重构后的代码:

状态基类

door代码

其中OpenState类的代码

 

 

[见:http://www.dnbcw.com/biancheng/java/ontc234886.html]

  • 职责链模式 
    如果不能根据某一个具体的状态值找到对应的Handler 或者 command类进行处理, 那么可以构造一个责任链, 把不同的handler串联起来,  把数据放到一个context中, 依次交给链中的Handler进行处理, Handler自己判断如果接受这次请求, 则自己处理, 否则调用下一个节点.

Handler接口

结尾

  • 个人总结, 欢迎批评指正
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值