重构实现Command模式

重构实现Command模式

一个简单的场景

描述

请求者发送请求,接受者接收请求,并作出响应,这有点类似于Web中的get和post等请求。一般,我们会使用条件判断语句来处理请求,if请求类型为这个,就执行这个方法,else if请求类型为那个,就执行那个方法,这种做法的一大优点是简单、直观。

使用条件语句处理可能带来的问题

  1. 当处理请求的种类太多时,需要使用大量的if else语句,这时候代码的简单性完全丧失了,变得难以理解、阅读。这时候处理类已经变得十分庞大,我们更倾向于使用小对象、小方法。
  2. 缺少灵活性,不支持客户端动态添加、移除处理器。类似于addHandler、removeHandler、setHander等方法。

重构到Command模式

  1. 若某一个请求的处理逻辑没有封装到一个方法中,那么提炼方法。
  2. 再将提炼出来的方法提炼出一个类,将原方法所需的参数传入新类,或将原方法所在的类传入新类中。提炼出来的类就是一个处理器,新类应该以Handler后缀命名,并为处理器的公共处理方法重新命名为execute、run或其他的。
  3. 重复提炼类,将所有的处理逻辑提炼出。
  4. 观察所有的处理器是否有重复代码,若有则可以使用模板方法来消除重复代码。
  5. 为所有的处理器类建立一个公共的接口,提供统一的执行方法。Handler类是将Command与处理逻辑放在一起了,也可以分开,将Command的方法委托给逻辑处理类的方法。
  6. 将原先封装条件语句的类改为调用Handler来处理请求。可以在该类中新建一个Handler的集合,通过集合来获取handler,提供add和remove方法来实现动态修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值