Java设计模式_行为型_命令模式_请求与实现相分离
来源:互联网 发布:网络新媒体加盟 编辑:程序博客网 时间:2024/06/06 01:10
转载请注明出处:http://blog.csdn.net/ljmingcom304/article/details/50424586
本文出自:【梁敬明的博客】
1.行为请求者
作为单位领导时常需要对下属发布一些命令来完成某些事情。当然,领导的命令有很多种,比如说张三去倒杯水来,李四去把窗户擦干净额,王五去把地拖干净等等,对于不同的命令可能会有不同的人去执行,完成的任务也不尽相同。因此,命令总是动态变化,不同的命令可以实现不同的目标。
//单位领导public class Invoker { private Command command; //准备命令 public void setCommand(Command command) { this.command = command; } //发布命令 public void action() { command.execute(); }}
2.命令执行者
作为单位的员工经常要接受领导的命令来做一些事情。比如说领导今天让擦窗户,那么就去擦窗户,领导让拖地,那么就将地拖干净。真是任劳任怨!
//单位员工public class Receiver { //开始工作 public void doSomething() { System.out.println("擦窗户"); }}
3.具体的命令
命令不一定由哪个领导发出来,但是需要有人来执行,知人善任也是一个合格的领导必须具备的素质,选取合适的人选去执行命令才能保证任务的圆满完成,所以当窗户脏了以后,找一个窗户擦的好的人去擦创库显得至关重要。
//抽象的命令public interface Command { //执行命令 void execute();}public class ConcreteCommand implements Command { private Receiver receiver; //选取合适的人选执行命令 public ConcreteCommand(Receiver receiver) { this.receiver = receiver; } //让选取的人去执行命令 @Override public void execute() { System.out.println("准备工作"); receiver.doSomething(); System.out.println("收尾工作"); }}
4.领导与员工
现在去找一个领导和一个员工,然后由领导发出擦窗户的命令,再由员工去执行。
public class Client { public static void main(String[] args) { // 执行命令的领导 Receiver receiver = new Receiver(); // 具体的指令 Command command = new ConcreteCommand(receiver); // 发布命令的领导 Invoker invoker = new Invoker(); // 设置命令 invoker.setCommand(command); // 发出命令 invoker.action(); }}
0 0
- Java设计模式_行为型_命令模式_请求与实现相分离
- Java设计模式_(行为型)_命令模式
- Java设计模式_(行为型)_责任链模式
- Java设计模式_(行为型)_迭代模式
- Java设计模式_(行为型)_中介者模式
- Java设计模式_(行为型)_备忘录模式
- Java设计模式_(行为型)_观察者模式
- Java设计模式_(行为型)_状态模式
- Java设计模式_(行为型)_策略模式
- Java设计模式_(行为型)_模版方法模式
- Java设计模式_(行为型)_访问者模式
- Java设计模式_(行为型)_解析器模式
- Java设计模式_行为型_观察者模式_任意行为的监听
- Java设计模式_行为模式_观察者模式
- Java设计模式_行为型_责任链模式_差旅报销如此简单
- Java设计模式_行为型_访问者模式_每个人的不同结果
- Java设计模式_行为型_中介者模式_租个房子不过如此
- Java设计模式_行为型_解释器模式_加减法的运算
- window.location.href无法跳转
- php框架选择
- android 自定义动画2
- ViewController的生命周期
- 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
- Java设计模式_行为型_命令模式_请求与实现相分离
- SDL是什么?
- SD miniSD microSD TF CF MMC XD-Picture卡 SDIO CE-ATA SDHC SDXC
- 其他排序算法:快速、归并、堆排序(top N问题)
- FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP
- maven 编译部署src/main/java下的资源文件
- SDL入门教程
- iOS开发 代理传值
- 设计并发数据结构