码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA设计模式之 命令模式【Command Pattern】

时间:2017-04-23 15:56:25      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:遍历   学习   运行   注入   pre   cut   pat   ati   没有   

一、概述

    命令模式能够将请求发送者和接收者全然解耦。发送者与接收者之间没有直接引用关系,发送请求的对象仅仅须要知道怎样发送请求,而不必知道怎样完毕请求。核心在于引入了命令类,通过命令类来减少发送者和接收者的耦合度,请求发送者仅仅需指定一个命令对象,再通过命令对象来调用请求接收者的处理方法,命令模式是一种对象行为型模式。


二、使用场景

1>、系统要求请求发送者和接收者的解耦,使得调用者和接收者不直接交互;

2>、类似消息 请求/命令 队列处理。[命令装载在集合或队列中,通过遍历集合,达到命令的批量处理]

3>、当运行一个命令而触发多个详细命令的运行,从而实行对命令的批量处理。这样的命令被称为组合命令或宏命令;


三、UML类图

技术分享

四、參与者

1>、Command(抽象命令类):抽象命令类通常是一个抽象类或接口。在当中声明了用于运行请求的execute()等方法。通过这些方法能够调用请求接收者的相关操作。

2>、ConcreteCommand(详细命令类):详细命令类是抽象命令类的子类,实现了在抽象命令类中声明的方法,它相应详细的命令接收者对象。将接收者对象的动作绑定当中。在实现execute()方法时。将调用接收者对象的相关操作(operation)。

3>、Invoker(命令发起者/消息请求者):与抽象命令类存在关联关系,在命令发起时 将一个详细命令对象注入当中 再调用详细命令对象的运行方法(execute) 从而间接实现调用请求接收者的相关操作。

4>、Receiver(命令/消息 接收者):接收者运行与请求相关的操作。它详细实现对请求的业务处理(operation方法运行)。

 

五、用例学习

1、命令接收者A:ReceiverA.java

/**
 * 命令接收者A
 * @author  lvzb.software@qq.com
 *
 */
public class

JAVA设计模式之 命令模式【Command Pattern】

标签:遍历   学习   运行   注入   pre   cut   pat   ati   没有   

原文地址:http://www.cnblogs.com/yangykaifa/p/6752651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!