《Android源码设计模式》读书笔记 (11) 第11章 命令模式
2016-02-21 14:13
525 查看
前言
命令模式也是一种行为型的设计模式定义
定义:将一系列的方法调用封装,用户只需调用一个方法执行,那么所有这些被封装的方法就会挨个执行调用.优点:更弱的耦合性,更灵活的控制性,以及更好的扩展性.
缺点:类的膨胀,大量衍生类的创建
UML类图
commond:命令角色,定义所有具体命令类的抽象接口
/** * 命令接口 * @author max * */ public interface Command { //执行具体命令操作 void excute(); }
ConcreteCommand:具体命令角色,在excute盗用receiver接收者的相关方法
/** * 具体命令类 * @author max * */ public class ConcreteCommand implements Command { private Recevier recevier;//接收者对象的引用 public ConcreteCommand(Recevier recevier) { super(); this.recevier = recevier; } @Override public void excute() { //调用接收者的执行具体的逻辑 recevier.action(); } }
invoker:请求者角色.调用命令对象执行具体的请求.相关方法我们称为行动方法.
/** * 请求者 * @author max * */ public class Invoker { private Command command;//持有一个相对应的命令对象的引用 public Invoker(Command command) { super(); this.command = command; } public void action(){ //调用命令者的相关方法 command.excute(); } }
receiver:接收者角色,执行命令角色具体的请求
/** * 接收者 * @author max * */ public class Recevier { /** * 真正执行具体命令逻辑的方法 */ public void action(){ //执行具体的逻辑 } }
client:客户端
private void simpleMethod() { //接收者 Recevier recevier = new Recevier(); //根据接收者构造命令对象 Command command = new ConcreteCommand(recevier); //根据具体的对象构造请求者 Invoker invoker = new Invoker(command); //执行请求方法 invoker.action(); }
源码下载
按照书上提供的俄罗斯方块的demo,可以更好的理解该设计模式.以下是项目demo截图:点击下载demo.http://download.csdn.net/detail/qq_28690547/9438260
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories