关于两个设计模式的心得----模版方法模式、责任链模式

在构建蓝牙稳定性自动化测试工具时,采用模版方法和责任链模式设计了一个框架。模版方法将每个测试用例抽象为Task,通过onStart、onExecute和onStop生命周期方法及对应的控制方法,实现对子类执行流程的有效控制。责任链模式则通过任务之间的引用链接,使执行流程清晰,遵循面向对象编程原则,简化了中心总控task的切换工作。

       最近在做一个蓝牙稳定性的自动化测试工具,就是用app模拟人的行为,自动去跑一些蓝牙相关的测试用例,譬如间隔传输数据、传输大数据、反复开关蓝牙等,再加上不同的参数配置,一共加起来大概有30多个case要跑,并且需要这些case串行执行,就是一个case跑完了才能执行下一个。这个时候如果没有一个设计框架在里面,直接硬编码实现每一个case会无比混乱,尤其是想实现串行执行会很麻烦。所以搞了一套框架,主要使用了模版方法模式、责任链模式这两个设计模式.

     1.模版方法模式:

        我们将每个测试用例抽象成一个Task, 下面Task的超类,这里面我们可以看到,Task有onStart、onExecute 、onStop三个生命周期方法,其中onExecute可能会被多次调用,因为一个用例可能会被多次执行。同时与三个生命周期方法想对应的是三个控制方法,start  execute  stop.以前我还对这种设计的好处不是很有体会,但这次在自己使用过程中,确实发现了这种方式对于子类执行流程控制的绝大好处。

public abstract class BasicTask {
	private BasicTask mNext;// 该task的下一个要要执行task

	protected void onStart() {
	}

	protected void onExecute() {
	}

	protected void onStop() {
	}

	public void start(TaskStateListener listener) {
		onStart();
	}

	protected void execute() {
		if (!isStop) {
			if (!isConnected()) {
				isDisConnectedWhenExecute = true;
				EventBus.getDefau
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值