`

第九章 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();
	}
}

 

分享到:
评论

相关推荐

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

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

    研磨设计模式(完整带书签).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章 ...

    研磨设计模式-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章 组合模式...

    第10章设计模式-真题1

    1. **Command模式**:在2009年的题目中,提到架构师决定采用Command模式来实现公告板系统的界面显示部分。Command模式主要用于封装请求,将请求作为一个对象,使得参数化对象调用不同的方法成为可能,同时也支持撤销...

    第10章设计模式-解析1

    9. **抽象工厂模式(Abstract Factory)**:抽象工厂模式提供一个创建对象族的接口,但不指定具体的产品类。2011年的题目提到了限制用户在聊天系统中的不当言论,可以使用责任链模式来实现关键词过滤的灵活性,但...

    java设计模式(电子书)

    第9章模板方法模式(TEMPLATE METHOD PATTERN):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 第10章建造者模式(BUILDER PATTERN)...

    大优惠Head First 设计模式

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

    HeadFirst设计模式(中文版)

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

    Head First 设计模式 JAVA源码

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

    HeadFirst 设计模式java源代码

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

    Head First 设计模式(中文版)

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

Global site tag (gtag.js) - Google Analytics