什么是命令模式设计模式
所谓命令模式,就是将一个请求封装为一个对象,从而让用户使用不一样的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销的操做的设计模式。 ide
命令模式的实现方式this
刘备三顾茅庐请诸葛亮出山以后,曹操派夏侯惇攻打刘备。刘备让诸葛亮指挥各位将军,诸葛亮“恐关、张二人不愿听吾号令”,刘备“便以剑印付孔明,孔明遂汇集众将听令。”spa
诸葛亮成了命令的发布者:设计
public class ZhugeLiang { |
各位将军们成为了命令的接收者和执行者对象
public class General { |
在豫山埋伏的命令开发
public class YushanCommand extends Command { |
在安林埋伏的命令
public class AnlinCommand extends Command {
|
勾引夏侯惇等人进埋伏圈的命令
public class SeduceCommand extends Command {
|
让具体的将军们执行命令
ZhugeLiang zhugeLiang = new ZhugeLiang(); |
诸葛亮初出茅庐便大获全胜,读者们也学会了命令模式。
Android源码中的命令模式
(1)命令模式不但让发布者与接收者解耦,也使得整个过程变得可控。Handler、Message、AsyncTask的执行流程都是命令模式的体现。
Android开发中如何利用命令模式
命令模式有更弱的耦合性、更灵活的控制性以及更好的扩展性。所以适用于如下场景:
(1)在不一样的时刻制定、排列和执行请求时。
(2)当系统可能崩溃而须要按照修改日志重作时。
(3)当须要支持取消操做或者事务操做的时候。
须要注意的几个问题
命令模式让开发者之间的协做和工做交接变得简便,但调用逻辑却变得异常复杂。同时带来了大量衍生类,让代码过分膨胀。