命令模式
来源:互联网 发布:linux tgz 安装 编辑:程序博客网 时间:2024/06/08 17:44
命令模式
将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销操作
命令模式的使用场景
需要抽象出待执行的动作,然后以参数的形式提供出来——类似于过程设计中的回调机制,而命令模式正式毁掉机制的一个面向对象的替代品。
在不同的时刻制定、排列和执行请求。一个命令对象可以有与初始请求无关的生存期。
需要支持取消操作。
支持修改日志功能,这样当系统崩溃时,这些修改可以被重做一遍。
需要支持事务操作。
UML图
代码:
Receiver.java
public class Receiver { public void action(){ System.out.println("执行具体操作!"); }}
Command.java
public interface Command { void execute();}
ConcreteCommand.java
public class ConcretCommand implements Command { private Receiver receiver; public ConcretCommand(Receiver receiver){ this.receiver=receiver; } @Override public void execute(){ receiver.action(); }}
Invoker.java
public class Invoker { private Command command; public Invoker(Command command){ this.command=command; } public void action(){ command.execute(); }}
Client.java
public class Client { public static void main(String[] args){ Receiver receiver=new Receiver(); Command command=new ConcretCommand(receiver); Invoker invoker=new Invoker(command); invoker.action(); }}
运行结果:
0 0
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- Android greenrobot:EventBus详解
- Comparable接口和Comparator接口的使用
- JAVA EE
- Android Service 简要概述
- Java之多线程
- 命令模式
- 华为面试题【8】-找零钱
- 华为面试题【8】-找零钱
- java语言程序设计基础篇第七章编程练习题
- Android 不死的应用程序service
- Java开发环境(JDK)的下载、安装、配置
- UIView 动画
- 设计模式——单例模式
- doctrine随机取数据