命令(Command)模式

本文介绍了命令模式的概念及其在JUnit中的应用。命令模式通过封装请求来解耦发送者和接收者,使得系统更加灵活。在JUnit框架中,测试用例被视为命令,实现了测试用例与框架间的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      命令(Command)模式属于行为模式,它把一个请求封装到一个对象中。并且允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。

 

命令模式的构成

1.客户角色(Client):创建一个具体的命令对象,并确定其接收者

2.命令角色(Command):声明一个给所有具体命令类的抽象接口。这是一个抽象角色,通常由一个接口或抽象类实现

3.具体命令角色(ConcreteCommand):定义一个接收者和行为之间的弱耦合,实现execute方法,负责调用接收者的相应操作

4.请求者角色(Invoker):负责调用命令对象执行请求

5.接收者角色(Reciever):负责具体实施和执行一个请求

 

 

下面分别实现各个类和接口:

(1)Command接口,命令角色

(2)ConcreteCommand具体命令角色

(3)Invoker请求者角色

 

命令模式在Junit3中的应用

    JUnit是一个测试framework,测试人员只需开发测试用例。然后把这些测试用例(TestCase)组成请求(可能是一个或多个),发送到JUnit,然后由JUnit执行,最后报告详细测试结果。其中包括执行的时间,错误方法,错误位置等。这样测试用例的开发人员就不需要知道JUnit内部的细节,只要符合它定义的请求格式即可。从JUnit的角度考虑,它并不需要知道请求TestCase的具体操作信息,仅把它当作一种命令来执行,然后把执行测试结果发给测试人员。这样就使JUnit框架和TestCase的开发人员独立开来,使得请求的一方不必知道接收请求一方的详细信息,更不必知道是怎样被接收,以及怎样被执行的,实现系统的松耦合。


此时,Command(命令)模式能够比较好地满足要求。
Command模式告诉我们可以为一个操作生成一个对象并给出它的一个“exectue(执行)”方法。

下面来考虑经过使用Command模式后给系统的架构带来了哪些效果:

1.Command模式将实现请求的一方(TestCase开发)和调用一方(JUnit)进行解耦

2.Command模式使新的TestCase很容易加入,无需改变已有的类,只需继承TestSuite就是它的符合命令,当然它使用Composite模式

3.Command模式容易把请求的TestCase组合成请求队列,这样使接收请求的一方(JUnit Framework),容易决定是否执行请求,一旦发现测试用例哦失败或者错误可以立刻停止进行报告

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值