Command Pattern的简单介绍
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的简单介绍的更多相关文章
- [Design Pattern] Command Pattern 简单案例
Command Pattern, 即命令模式,把一个命令包裹在一个对象里面,将命令对象传递给命令的执行方,属于行为类的设计模式 下面是命令模式的一个简单案例. Stock 代表被操作的对象.Order ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式 ...
- shell语法简单介绍
一.基本的语法 1.1.shell文件开头 shell文件必须以以下的行開始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的參数是用来运行该文件的程序.在这个样例中我们 ...
- 设计模式 - 命令模式(command pattern) 具体解释
命令模式(command pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 命令模式(command pattern) : 将请求封装成对 ...
- Tcl 简单介绍及特性
[简单介绍|特性] l 简单介绍 Tcl是一门产生于80年代末的语言,和Python一样,她是用c开发出来的.假设说C/Java/C++/C#为编译型语言的话,那么Python.Perl和Tcl就是 ...
- Android 驱动(二) IIC简单介绍
一. I2C简单介绍 I2C(Inter-Integrated Circuit)总线是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C 总线最基本的长处就是简单性 ...
- 乐在其中设计模式(C#) - 命令模式(Command Pattern)
原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...
- C#设计模式之十五命令模式(Command Pattern)【行为型】
一.引言 今天我们开始讲"行为型"设计模式的第二个模式,该模式是[命令模式],又称为行动(Action)模式或交易(Transaction)模式,英文名称是:Command P ...
- Core文件简单介绍及生成设置方法
Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...
随机推荐
- 搭建MQTT代理服务器
# 解压tar zxfv mosquitto-1.4.14.tar.gz# 进入目录cd mosquitto-1.4.14# 编译make# 安装sudo make instal 1 启动代理服务在第 ...
- 【Ecshop】商品数据采集扩展
一个自用的Ecshop商品数据采集程序 ->到此下载
- ADSL_自动拨号源码(Delphi),已经测试通过
下载地址: http://files.cnblogs.com/lwm8246/ADSL_%E8%87%AA%E5%8A%A8%E6%8B%A8%E5%8F%B7.rar
- Kings(状压DP)
Description 用字符矩阵来表示一个8x8的棋盘,'.'表示是空格,'P'表示人质,'K'表示骑士.每一步,骑士可以移动到他周围的8个方格中的任意一格.如果你移动到的格子中有人质(即'P'), ...
- 零基础学css第二天
内边距与外边距: <!DOCTYPE html> <html> <head> <title></title> <style type= ...
- python基础之数据类型与变量patr2
一.元素分类 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中. 即: ...
- 菜鸟学Linux - Tarball安装的一般步骤
所谓的Tarball软件,实际上指的是从网络上下载到的源码包.通常是以.tar.gz和tar.bz2结尾.至于gz和bz2的区别在于压缩算法的不同(bz2的压缩效果好像好一些).源码包下载完成后,需要 ...
- [bzoj3071]N皇后
哈哈哈水题~ 但是不能一眼看出来的..我想了一个小时?! 题面 Description “国际象棋中,一方的皇后数不能超过5个” 一个N*N的棋盘,任意摆放皇后,最坏情况下最少需要多少个皇后才能保证所 ...
- toolbar menu 字体颜色和大小
Toolbar菜单中menu当中我们大多数都使用图片来按钮,可是有些时候我们也会直接使用文字,文字的颜色如何修改呢. 其实很简单,我们只要修改styles.xml文件中,添加一句 <item n ...
- html5兼容处理&sublime text3配置html5环境
1.为了兼容低版本的浏览器解析不了hmtl5标签,要在html文件中head内引入html5shiv.min.js文件 <!--[if lt IE 9]> <script src=& ...