设计模式—行为型—命令模式

设计模式行为型

1.观察者模式

2.模板模式

3.策略模式

4.职责链模式

5.状态模式

6.迭代器模式

7.访问者模式

8.备忘录模式

9.命令模式

10.解释器模式

11.中介模式

命令模式

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

将一组行为抽象为对象,实现“行为请求者”与“行为实现者”的松耦合。这就是命令模式

模式结构

Command:
定义命令的接口,声明执行的方法。
ConcreteCommand:
命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。
Receiver:
接收者,真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。
Invoker:
要求命令对象执行请求,通常会持有命令对象,可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方,也就是说相当于使用命令对象的入口。

结构图
代码实现
package com.sun.command;
/**
 * 命令超类
 * @author work
 */
public abstract class Command {
	
	protected Receiver receiver;
	
	public abstract void execute();
	
	public Command(Receiver receiver) {
		this.receiver = receiver;
	}
}
 
package com.sun.command;
/**
 * 命令实现
 * @author work
 *
 */
public class ConcreateCommand extends Command{

	public ConcreateCommand(Receiver receiver) {
		super(receiver);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void execute() {
		// TODO Auto-generated method stub
		receiver.action();
	}

}
 
package com.sun.command;
/**
 * 命令接受者
 * @author work
 */
public class Receiver {
	
	public void action() {
		System.out.println("执行请求");
	}
	
	public static void main(String[] args) {
		Receiver r = new Receiver();
		Command c = new ConcreateCommand(r);
		Invoker i = new Invoker();
		i.setCommand(c);
		i.executeCommand();
	}
}
 
package com.sun.command;
/**
 * 命令决策 决定命令执行
 * @author work
 *
 */
public class Invoker {
	
	private Command command;

	public Command getCommand() {
		return command;
	}

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



 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值