Android设计模式之命令模式
2016-07-17 21:22
435 查看
通过将一系列的操作封装成一个命令对象,方便执行,同时也能够很好的让我们进行一些操作回滚,用来记录是否执行过该操作等问题。
我们将某些操作封装成一个Command命令,每个命令对应一个操作,如下图所示:
Command
ConcreteCommand
Receiver
这样我们就可以通过命令的方式来对我们的操作进行管理了。
上面已经把我们的操作抽象为命令的方式,每个命令对应一个行为操作,下面就是对命令的触发了。我们通过一个单独的类来对命令进行管理和触发。
Invoker
这样就形成了整个命令模式。
Client
Android中的命令模式
Android中的Runnable就是一种命令模式。例如:
跟上面相比,命令的行为这里直接写在命令中,并没有单独为命令写一个行为对象。
欢迎关注微信公众号:DroidMind
精品内容独家发布平台
呈现与博客不一样的技术干货
我们将某些操作封装成一个Command命令,每个命令对应一个操作,如下图所示:
Command
public interface Command { void execute(); }
ConcreteCommand
public class ConcreteCommand implements Command { private Receiver receiver; public ConcreteCommand(Receiver receiver) { this.receiver = receiver; } @Override public void execute() { this.receiver.action(); } }
Receiver
public class Receiver { public void action() { System.out.println("执行动作"); } }
这样我们就可以通过命令的方式来对我们的操作进行管理了。
上面已经把我们的操作抽象为命令的方式,每个命令对应一个行为操作,下面就是对命令的触发了。我们通过一个单独的类来对命令进行管理和触发。
Invoker
public class Invoker { private Command command; // 这里凡是继承 Command 接口的类都可以以参数的形式传入 public void setCommand(Command command) { this.command = command; } public void action() { this.command.execute(); // 而所有继承自 Command 接口的类都必须实现 execute() 这个方法 } }
这样就形成了整个命令模式。
Client
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(); } }
Android中的命令模式
Android中的Runnable就是一种命令模式。例如:
new Thread(new Runnable() { @Override public void run() { } }).start();
跟上面相比,命令的行为这里直接写在命令中,并没有单独为命令写一个行为对象。
欢迎关注微信公众号:DroidMind
精品内容独家发布平台
呈现与博客不一样的技术干货
相关文章推荐
- Android中项目中集成百度地图
- 转行|如何成为企业想要的Android工程师
- android studio 怎么将项目打包成apk文件
- Android二维码生成
- Android 实现图形解锁
- Android手机截屏生成gif图片
- 带有向下箭头的自定义弹出菜单
- Android Hooking
- android studio for android learning (十九 ) 最新Handler消息传递机制全解
- android studio创建一个最简单的跳转activity
- Android-对相册中的图片进行上传或下载
- 如何阻止Android的反编译apk
- Android-自定义手势识别-复杂手势识别
- android 快捷键
- Android—强制下线功能的实现
- Android的反编译
- android 五大布局-线性布局(LinearLayout)
- Android基础——Activity之间传递参数
- 献给迷茫的大家
- Android 简单的适配问题