设计模式之命令模式

  在许多设计中,经常设计一个对象请求另一个对象执行某一个操作。如果请求者无法或者不希望直接和被请求者打交道,即请求对象无法或者不希望含有被请求者的引用,那么可以使用命令模式。命令模式里称提出请求的对象为请求者,被请求者的对象为接收者。在命令模式中,当一个对象请求另一个对象调用其方法时,不和被请求者直接打交道,而是把这种“请求”封装到一个“命令”对象中,封装的手段将“请求”封装到“命令”对象的一个方法中。命令模式的核心就是使用命令对象来封装方法调用。

  例如,在军队作战时,指挥官要命令三连偷袭敌人。但是指挥官这时无法或者不希望和三连直接取得联系,那么指挥官可以发出一个命令,把该命令的执行者设置为三连。这样指挥官只要和命令打交道。

  命令模式包含四种角色:

  接收者:接收者是一个类的实例,该实例负责执行与请求相关的操作。

  命令接口:命令式一个接口,免备案空间,规定了用来封装“请求”的若干个方法,香港空间,比如execute()、undo()等方法。

  具体命令:具体命令式实现了命令接口的类的实例,香港虚拟主机,包含命令接口的方法。并且包含接受者的引用,指明那个对象去执行该命令。

  请求者:请求者是包含命令接口变量类的实例,该接口变量可以存放任何具体命令的引用。请求者负责调用具体命令,让具体命令执行那些封装了的请求方法。

下面看军队作战的例子:

  1.命令接收者:

1 package com.command; CompanyArmy { sneakAttack(){5System.out.println(“我们知道如何袭击敌人,保证完成任务”);6 }7 }你在会议中吵架时,尼泊尔的背包客一起端起酒杯坐在火堆旁。

设计模式之命令模式

相关文章:

你感兴趣的文章:

标签云: