Command pattern 的角色有:Command(抽象命令)、ConcreteCommand(具体命令) 、Invoker(传达命令者) 、receiver(接收命令者)Client(客户类,想当于测试类);

//代码如下:

package com.qls.commandPattern3;
/**背景介绍:
* 泗溪村大学生村官欧阳凤收到清溪乡政府的一份文件。此文件主要要求大力发展当地的乡村旅游,特别是
* 春季的油菜花旅游。
* 欧阳凤收到文件指示后,便召集全村村民在村委会向村民传达了清溪乡政府的发展乡村旅游的指示,希望能
* 得到广大群众的支持。
* 上面的情景抽象出来就是一个命令模式。
* 其中清溪乡政府的一份文件相当于Command,
* 发展乡村旅游相当于此文件中的一个具体命令相当于:ConcreteCommand
* 大学生村官欧阳凤相当于传达者(Invoker)
* 泗溪村的全体村民相当于接受者(Receiver)
* 而这个Client类,便相当于一个测试类。在命令模式成为Client角色(也就是客户角色)没有实质作用。
* @author 秦林森
*
*/
//定义清溪乡政府的文件:File。也就是命令模式中的Command接口
interface File{
void execute();//这份文件中要求做的事。
}
//定义这份文件中关于发展乡村旅游的具体命令。也就是命令模式中的ConcreteCommand类
class ConcreteFile implements File{

/**
* 定义文件的接受者Masses
*
*/
private Masses masses;
/**
* 定义以masses为参数的构造方法
*/
public ConcreteFile(Masses masses) {
this.masses = masses;
}
@Override
public void execute() {
// TODO Auto-generated method stub
masses.action();
}

}
//定义大学生村官欧阳凤。也就是命令模式中的Invoker类
class Ouyangfeng{
/**
* 定义一个File的成员变量
*/
private File file;
/**
* 定义一个以file为变量的构造方法。
* @param file
*/
public Ouyangfeng(File file) {
this.file = file;
}
public void action(){
file.execute();
}
}
//定义广大的群众。也就是命令模式中的Receiver类
class Masses{
public Masses() {
// TODO Auto-generated constructor stub
}
public void action(){
System.out.println("坚决支持发展乡村旅游,支持村官欧阳凤");
}
}
//Client类,相当于命令模式中的Client类。
public class Client {

public static void main(String[] args) {
// TODO Auto-generated method stub
Masses masses=new Masses();
File file=new ConcreteFile(masses);
Ouyangfeng ouyangfeng=new Ouyangfeng(file);
ouyangfeng.action();
}

}/*
Output:
坚决支持发展乡村旅游,支持村官欧阳凤
*///:~

Command Pattern的简单介绍的更多相关文章

  1. [Design Pattern] Command Pattern 简单案例

    Command Pattern, 即命令模式,把一个命令包裹在一个对象里面,将命令对象传递给命令的执行方,属于行为类的设计模式 下面是命令模式的一个简单案例. Stock 代表被操作的对象.Order ...

  2. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍

    WPF自学入门(十一)WPF MVVM模式Command命令   在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式 ...

  3. shell语法简单介绍

    一.基本的语法 1.1.shell文件开头 shell文件必须以以下的行開始(必须方在文件的第一行):  #!/bin/sh  符号#!用来告诉系统它后面的參数是用来运行该文件的程序.在这个样例中我们 ...

  4. 设计模式 - 命令模式(command pattern) 具体解释

    命令模式(command pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 命令模式(command pattern) : 将请求封装成对 ...

  5. Tcl 简单介绍及特性

    [简单介绍|特性] l  简单介绍 Tcl是一门产生于80年代末的语言,和Python一样,她是用c开发出来的.假设说C/Java/C++/C#为编译型语言的话,那么Python.Perl和Tcl就是 ...

  6. Android 驱动(二) IIC简单介绍

    一. I2C简单介绍 I2C(Inter-Integrated Circuit)总线是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C 总线最基本的长处就是简单性 ...

  7. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  8. C#设计模式之十五命令模式(Command Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第二个模式,该模式是[命令模式],又称为行动(Action)模式或交易(Transaction)模式,英文名称是:Command P ...

  9. Core文件简单介绍及生成设置方法

    Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...

随机推荐

  1. Linux实战教学笔记16:磁盘原理

    第十五节 磁盘原理 标签(空格分隔): Linux实战教学笔记 1,知识扩展 非脚本方式的一条命令搞定批量创建用户并设置随机10位字母数字组合密码. 1.1 sed的高级用法 [root@chensi ...

  2. Linux下Mysql5.6 二进制安装

    1.1下载二进制安装包 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.t ...

  3. OracleWeblogic12C安装教程

    一,安装WebLogic Server 1. 双击exe安装文件 2.准备安装文件 3. 生成向导序列 4. 选择安装路径 5. 开始安装 经过以上步骤,weblogic已经成功安装到了你的电脑上,但 ...

  4. manjaro安装teamviewer实现远程连接

    不要安装库里面的这两个版本,安装后桌面快捷方式和命令行运行都正常显示窗口,但没有teamviewer ID和随机密码 12.x版本也不用下载尝试了 ➜ ~ teamviewer Init...Chec ...

  5. MongoDb第一天

    安装之后进入cmd.进入到安装目录下的bin目录下. 任意选一个空目录,建立db,log的文件夹.之后终端命令行里面输入回车. D:\ProgramFiles\MongoDB\Server\3.6\b ...

  6. CSS计数器(自定义列表)

    概念 CSS3计数器(CSS Counters)可以允许我们使用css对页面中的任意元素进行计数,实现类似于有序列表的功能(自定义有序列表) 与有序列表相比,它的突出特性在于可以对任意元素计数,同时实 ...

  7. Java语言基础---两变量间的交换

    使用中间变量交换两个变量的值 int a = 10 , b = 11 , m; m = a; a = b; b = m; 不使用中间变量交换两个变量的值 int a = 10; int b = 11; ...

  8. c#集合的使用

    //添加单个元素用Add方法 ArrayList list = new ArrayList(); list.Add(true); list.Add(); list.Add("小陈" ...

  9. 不想停机?快使用Windows Server 2016滚动升级

    [TechTarget中国原创] Windows Server环境中的关键任务工作量总是密集的.工作量会主要集中在Hyper-V部署集群.硬件故障转移集群或者外来集群的顶部.集群中常用的表格都是基于F ...

  10. 关于p标签的嵌套问题

    今天群里问了一个p的问题,初看我觉得恩这么简单我应该知道. 他代码如下: <!DOCTYPE HTML> <html> <head> <meta charse ...