`

设计模式----命令模式(command pattern)

 
阅读更多
Group.java代码如下:

package com.designPattern.command;

/**
 * 
 * @author yangjianzhou
 * 项目组分成了三个组,每个组都要接受增删改的命令
 */
public abstract class Group {

	public abstract void find();
	
	public abstract void add();
	
	public abstract void delete();
	
	public abstract void change();
	
	public abstract void plan();
	
}



RequirementGroup.java代码如下:
package com.designPattern.command;

public class RequirementGroup extends Group{

	@Override
	public void find() {
		System.out.println("找到需求组!");
	}

	@Override
	public void add() {
		System.out.println("客户要求增加一项需求!");
		
	}

	@Override
	public void delete() {
		System.out.println("客户要求删除一项需求!");
		
	}

	@Override
	public void change() {
		System.out.println("客户要求改变一项需求!");
		
	}

	@Override
	public void plan() {
		System.out.println("客户要求变更需求计划!");
		
	}

}



PageGroup.java代码如下:
package com.designPattern.command;

public class PageGroup extends Group{
	
	@Override
	public void find() {
		System.out.println("找到美工组!");
	}

	@Override
	public void add() {
		System.out.println("客户要求增加一个页面!");
		
	}

	@Override
	public void delete() {
		System.out.println("客户要求删除一个页面!");
		
	}

	@Override
	public void change() {
		System.out.println("客户要求改变一个页面!");
		
	}

	@Override
	public void plan() {
		System.out.println("客户要求页面变更计划!");
		
	}

}



CodeGroup.java代码如下:
package com.designPattern.command;

public class CodeGroup extends Group{

	@Override
	public void find() {
		System.out.println("找到代码组!");
	}

	@Override
	public void add() {
		System.out.println("客户要求增加一项功能!");
		
	}

	@Override
	public void delete() {
		System.out.println("客户要求删除一项功能!");
		
	}

	@Override
	public void change() {
		System.out.println("客户要求改变一项功能!");
		
	}

	@Override
	public void plan() {
		System.out.println("客户要求变更功能计划!");
		
	}


}



Command.java代码如下:
package com.designPattern.command;

/**
 * 
 * @author yangjianzhou
 * 一系列命令
 */
public abstract class Command {
	
	/**
	 * 命令执行者
	 */
	protected RequirementGroup rg = new RequirementGroup();
	
	protected PageGroup pg = new PageGroup();
	
	protected CodeGroup cg = new CodeGroup();
	
	public abstract void execute();

}



AddRequirementCommand.java代码如下:
package com.designPattern.command;

public class AddRequirementCommand extends Command{

	@Override
	public void execute() {
		
		super.rg.find();
		
		super.rg.add();
		
		super.rg.plan();
		
	}

}



DeletePageCommand.java代码如下:
package com.designPattern.command;

public class DeletePageCommand extends Command{

	@Override
	public void execute() {
		
		super.pg.find();
		
		super.pg.delete();
		
		super.pg.plan();
		
	}

}



Invoker.java代码如下:
package com.designPattern.command;

/**
 * 
 * @author yangjianzhou
 * 命令接受者
 */
public class Invoker {
	
	private Command command;

	public void setCommand(Command command) {
		this.command = command;
	}

	public void action(){
		this.command.execute();
	}

}



Client.java代码如下:
package com.designPattern.command;

public class Client {
	
	public static void main(String[] args) {
		
		Invoker invoker = new Invoker();
		System.out.println("==================客户要求增加一项需求===================");
		Command command = new AddRequirementCommand();
		invoker.setCommand(command);
		invoker.action();
		
		System.out.println("==================客户要求删除一个页面===================");
		command = new DeletePageCommand();
		invoker.setCommand(command);
		invoker.action();
	}

}



运行结果如下:
==================客户要求增加一项需求===================
找到需求组!
客户要求增加一项需求!
客户要求变更需求计划!
==================客户要求删除一个页面===================
找到美工组!
客户要求删除一个页面!
客户要求页面变更计划!
分享到:
评论

相关推荐

    C#设计模式-吕震宇

    设计模式(18)-Command Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(16)-Bridge Pattern 设计模式(15)-Facade Pattern 设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy ...

    design-pattern-java.pdf

    命令模式-Command Pattern 请求发送者与接收者解耦——命令模式(一) 请求发送者与接收者解耦——命令模式(二) 请求发送者与接收者解耦——命令模式(三) 请求发送者与接收者解耦——命令模式(四) 请求发送者...

    设计模式之命令模式(Command Pattern)

    将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。

    Head First 设计模式 (六) 命令模式(Command pattern) C++实现

    Head First 设计模式 (六) 命令模式(Command pattern) C++实现

    命令模式 Command Pattern

    命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

    36种最新设计模式整理

    36种最新设计模式整理 Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 ...

    Design-pattern-Adapter-Factory-Command-Memento:Java中的Adapter&Factory&Command&Memento设计模式

    设计模式-适配器-工厂-命令-备忘录Java中的Adapter&Factory&Command&Memento设计模式GoodHealth Fitness Corporation 是一家大型健身俱乐部。 它提供最先进的设备供其成员使用。 公司维护一个会员系统,用于记录会员...

    C#设计模式.PDF

    设计模式(18)-Command Pattern 168 一、 命令(Command)模式 168 二、 命令模式的结构 168 三、 命令模式的示意性源代码 169 四、 玉帝传美猴王上天 172 五、 命令模式的实现 172 六、 命令模式的实际应用案例 ...

    用Java实现23种设计模式

    命令模式(Command Pattern) 解释器模式(Interpreter Pattern) 迭代器模式(Iterator Pattern) 中介者模式(Mediator Pattern) 备忘录模式(Memento Pattern) 观察者模式(Observer Pattern) 状态模式...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...

    CoreJava-DesignPattern

    创意设计模式 -- Abstract Factory - Done -- Builder - Done -- Factory Method -- Object Pool -- Prototype - Done -- Singleton - Done 结构设计模式 -- Adapter -- Bridge -- Composite -- Decorator - Done ...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、访问者模式VISITOR PATTERN ...

    33种JAVA设计模式DEMO

    命令模式(Command Pattern) 解释器模式(Interpreter Pattern) 迭代器模式(Iterator Pattern) 中介者模式(Mediator Pattern) 备忘录模式(Memento Pattern) 观察者模式(Observer Pattern) 状态模式(State...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    C#设计模式大全

    设计模式(18)-Command Pattern 一、 命令(Command)模式 二、 命令模式的结构 三、 命令模式的示意性源代码 四、 玉帝传美猴王上天 五、 命令模式的实现 六、 命令模式的实际应用案例 七、 在什么情况下...

    设计模式PPT

     命令模式(Command Pattern)  解释器模式(Interpreter Pattern)  迭代器模式(Iterator Pattern)  中介者模式(Mediator Pattern)  备忘录模式(Memento Pattern)  观察者模式(Observer Pattern...

    C#设计模式_设计模式_C#_

    命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) 19. 职责链模式(Chain of ...

    设计模式:可复用面向对象软件的基础--详细书签版

     “[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...

    32种设计模式

    命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) ...

Global site tag (gtag.js) - Google Analytics