设计模式之命令模式应用

由于工作的关系,日常工作中编码任务总不是很多,绝大部分时间都贡献给了Bug,使得每一次编程体验都来得异常珍贵。

前段时间接到一个任务:编写低层模块支持常见控件的点击,文本输入等动作,以用于自动化测试。

难得的一次编码任务,现将整个设计过程与大家分享一下,以增加各位的编程体验。

虽然学习设计模式已经一年多了,但思维模式的转变并不是一件很容易的事,咱自学习编程以来用面向过程的方式编写了近7万行的代码,这方面是轻车熟路啊。

一上手,立即想出一种设计方案,其伪代码如下。

Control oControl = Findctrl() //查找控件

If (action == "左击")

{

...

}

Else if (action == "右击")

{

....

}

 

十分简单的解决的解决方案:先查找到控件,再根据动作类型产生动作。那么事情就到此结束了吗?

随着工作的进行,发现需要支持的动作不断增加,如左双击,右双击,文本输入,窗口最大化,最小化等等。因此上面的结构就将变的异常的复杂。

虽然以上方法能实现需要的功能,但在对其进行维护和后期扩展方面将面临挑战。

考虑到每一个控件操作均为一个请求,因此可将其封装为一个对象,其类图如下所示:

动作类图

采用以上的类图设计,将每个动作请求封装成一个类对象,以此来消除先前第一个设计中的if/else结构,并且在增加动作类型的时候,只需从CActionBase 中继承动作子类即可,方便扩展及维护。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值