`

设计模式----命令模式(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 ...

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

    命令模式是一种行为设计模式,它将请求封装成独立的对象,使得可以使用不同的请求、队列请求、记录请求历史以及支持可撤销的操作。这种模式在软件工程中被广泛应用,尤其是在需要解耦请求发起者和接收者时,提高了...

    java设计模式---诙谐易懂版

    代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式...命令模式(Command Pattern)、装饰模式(Decorator Pattern)、迭代器模式(Iterator Pattern)、组合模式(Composite Pattern)、观察者...

    design-pattern-java.pdf

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

    c++-设计模式之命令模式(Command Pattern)

    命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为对象,从而使您可以使用不同的请求、队列请求或日志请求,并支持可撤销操作。命令模式通常用于实现操作的解耦,使得发送者和接收者之间不直接关联...

    命令模式command pattern

    命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列请求,或者支持可撤销的操作。在Java中实现命令模式,我们可以利用面向对象编程的特性来构建系统,使得...

    设计模式-COMMAND

    **命令模式(Command Pattern)** 是一种行为设计模式,它将请求封装成对象,从而使你能够用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 在软件开发中,特别是面向对象编程语言...

    java常用设计模式-命令模式

    命令模式(Command Pattern)是一种行为设计模式,它允许将请求封装为一个对象,从而使不同的请求可以使用不同的参数进行参数化,队列或日志请求,以及支持可撤销的操作。在 Java 中,命令模式的实现通常涉及一个...

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

    命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Head First 设计模式这本书中,第六章详细介绍了如何在C++中...

    设计模式 - Design Pattern

    "Design Pattern"这个压缩包文件很可能包含了一些关于设计模式的实例和文档,特别是提到了"design-pattern\doc\api"目录下的"index.html",这可能是一个交互式的文档或者教程,通过实例帮助开发者更好地理解设计模式...

    JAVA设计模式-chm版

    包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...

    命令模式 Command Pattern

    ### 命令模式(Command Pattern) #### 概述 命令模式是一种行为设计模式,它将请求封装成对象,以便使用不同的请求对客户端进行参数化。该模式有助于将发送请求的对象与执行请求的对象解耦。 #### 核心概念 在...

    设计模式整理代码-pattern.zip

    - 命令模式(Command):将请求封装为一个对象,以便使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。 - 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理该语言...

    C++11全套设计模式-23种指针的用法(a full DesignPattern -DesignPattern.zip

    15. **命令模式(Command)**:将请求封装为一个对象,以便使用不同的请求、队列请求、或者支持撤销操作。C++11的`std::function`和`std::unique_ptr`可用于实现命令对象。 16. **责任链模式(Chain of ...

    GOF-设计模式-Design Patterns-英文原版-高清-有目录-有页码

    - **命令**(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 - **解释器**(Interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释...

    23种设计模式 - 架构设计 - PPT

    - **命令模式(Command)**:将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 - **迭代器模式(Iterator)**:提供一种方法顺序访问一个聚合...

    23种设计模式-C++实现.zip

    设计模式是软件工程中经过长期实践验证的有效解决方案模板,它们为常见的编程问题提供了...在压缩包中的"DesignPattern-master"文件夹中,你将找到每个设计模式的详细实现示例,这将是你学习和理解设计模式的宝贵资源。

    JAVA design pattern-java设计模式

    在这个名为"JAVA design pattern-java设计模式"的CHM文件中,我们可能找到了关于如何在Java开发中应用设计模式的详细信息。 设计模式通常分为三大类:创建型、结构型和行为型。创建型模式关注对象的创建,如单例...

    design-pattern-Java设计模式

    行为型模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、备忘录(Memento)、状态(State)、职责链(Chain of Responsibility...

    这是一套 Java 设计模式的集合示例-design-pattern.zip

    - 命令模式(Command):将请求封装为一个对象,以便使用不同的请求、队列或者日志请求,以及支持可撤销的操作。 - 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理这种语言...

Global site tag (gtag.js) - Google Analytics