`

第九章 Command模式

 
阅读更多

Command命令模式是将发出命令的责任和接受命令的责任以及命令三者之间分开,通过分离后委派给不同的对象方便扩展。主要涉及到的对象有:请求者,命令,接收者。

如:长官命令士兵跑步、唱歌。

长官是命令发出者(Offiecer)

士兵是命令接收者(Soldier)

跑步,唱歌是具体命令(Command)

package com.wayne.command;

public abstract class Command {
	public abstract void execute();
}

package com.wayne.command;

public class SingCommand extends Command {
	private Soldier soldier;

	public SingCommand(Soldier soldier) {
		this.soldier = soldier;
	}

	@Override
	public void execute() {
		soldier.action();
	}

}

package com.wayne.command;

public class RunCommand extends Command {
	private Soldier soldier ;
	public RunCommand(Soldier soldier){
		this.soldier = soldier;
	}
	@Override
	public void execute() {
		soldier.action();
	}

}


package com.wayne.command;

public class Officer {
	private Command command;

	public Officer(Command command) {
		this.command = command;
	}

	public void order() {
		command.execute();
	}
}


package com.wayne.command;

public class Soldier {
	public Soldier() {
	}

	public void action() {
		System.out.println("execute command.....");
	}
}


package com.wayne.command;

public class Client {
	public static void main(String args[]) {
		Soldier soldier = new Soldier();
		Command command = new RunCommand(soldier);
		Command command2 = new SingCommand(soldier);
		// 不同的长官给同一个士兵发送不同的命令
		Officer officer = new Officer(command);
		Officer officer2 = new Officer(command2);
		officer.order();
		officer2.order();
	}
}

 

分享到:
评论

相关推荐

    敏捷软件开发:原则、模式与实践

    第9章 开放—封闭原则(OCP) 第10章 Liskov替换原则(LSP) 第11章 依赖倒置原则(DIP) 第12章 接口隔离原则(ISP) 第三部分 薪水支付案例研究 第13章 COMMAND模式和ACTIVE OBJECT模式 第14章 TEMPLATE METHOD模式和...

    研磨设计模式(完整带书签).part2.pdf

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) ...

    敏捷软件开发原则、模式与实践 C#版

    第一部分 敏捷开发 第1章 敏捷实践 第2章 极限编程概述 第3章 计划 第4章 测试 第5章 重构 第6章 一次编程实践 第二部分 敏捷设计 第7章 什么是敏捷设计 第8章 SRP:单一职责原则 第9章 OCP:开放-封闭原则 第10章 ...

    研磨设计模式(完整带书签).part1.pdf

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) ...

    [Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

    第9章 观察者(observer)模式 72 第10章 调停者(mediator)模式 85 第11章 代理(proxy)模式 97 第12章 职责链(chain of responsibility)模式 115 第13章 享元(flyweight)模式 122 第14章 构造型模式介绍 130 第15章 ...

    敏捷软件开发:原则、模式与实践.pdf

    第十三章 COMMAND模式和ACTIVE OBJECT模式 第十四章 TEMPLATE METHOD模式和STRATEGY模式:继承与委托 第十五章 FACADE模式和MEDIATOR模式 第十六章 SINGLETON模式和MONOSTATE模式 第十七章 NULL OBJECT模式 第十八章...

    研磨设计模式-part2

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) ...

    研磨设计模式-part4

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) ...

    研磨设计模式-part3

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) ...

    Delphi模式编程第一分卷

    第9章 适配器模式(Adapter) 9.1 模式解说 9.2 结构和用法 9.2.1 类的适配器模式 9.2.2 对象的适配器模式 9.2.3 问题讨论 9.3 范例与实践 9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 第10章 ...

    Delphi模式编程第二分卷

    第9章 适配器模式(Adapter) 9.1 模式解说 9.2 结构和用法 9.2.1 类的适配器模式 9.2.2 对象的适配器模式 9.2.3 问题讨论 9.3 范例与实践 9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 ...

    研磨设计模式.part3(共4个)

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式...

    研磨设计模式.part2(共4个)

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式...

    研磨设计模式.part4(共4个)

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式...

    研磨设计模式.part1(共4个)

    第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 观察者模式(Observer) 第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式...

    敏捷软件开发:原则、模式与实践.pdf 高清

    第十三章 COMMAND模式和ACTIVE OBJECT模式 第十四章 TEMPLATE METHOD模式和STRATEGY模式:继承与委托 第十五章 FACADE模式和MEDIATOR模式 第十六章 SINGLETON模式和MONOSTATE模式 第十七章 NULL OBJECT模式 第十八章...

    Head First设计模式

    第1章还介绍了四个基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个原则(Principle)。千万不要轻视这些原则,因为每个设计模式背后都包含了几个原则的概念。很多时候,在设计时有两难的情况,这...

    敏捷软件开发:原则、模式与实践.pdf

    第9章 开放—封闭原则(OCP) 第10章 Liskov替换原则(LSP) 第11章 依赖倒置原则(DIP) 第12章 接口隔离原则(ISP) 第三部分 薪水支付案例研究 第13章 COMMAND模式和ACTIVE OBJECT模式 第14章 TEMPLATE METHOD模式...

Global site tag (gtag.js) - Google Analytics