移动架构14_命令模式

原创 2017年10月06日 21:51:28
一、定义
将请求封装成一个对象,从而让用户使用不同的请求把客户端参数化。请求排队或者记录请求日志,以及支持可撤销的操作
 
二、使用场景
1. 系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。
2. 系统需要在不同的时间指定请求、将请求排队和执行请求。
3. 系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。
4. 系统需要将一组操作组合在一起。

三、角色
1.Receiver接受者
Receiver是真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能
2.Command命令角色  :
定义命令的接口,声明具体命令类需要执行的方法。这是一个抽象角色。
3.ConcreteCommand具体命令角色:
命令接口的具体实现对象,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。
4.Invoker请求者角色:
负责调用命令对象执行请求,通常会持有命令对象(可以持有多个命令对象)。Invoker是Client真正触发命令并要求命令执行相应操作的地方(使用命令对象的入口)。

四、Demo  
代码地址:http://download.csdn.net/download/baopengjian/10009500
虎符是古代皇帝调兵遣将用的兵符,,其中一半交给将帅,另一半由皇帝保存,。只有两个虎符同时合并使用,持符者即获得调兵遣将权。
问题1:皇帝直接指挥军队吗
客户端不直接操作底层对象
问题2  秦始皇如果想攻打齐国,他会怎么办
客户端指挥 请求者执行请求
问题3  攻打齐国过程中,不想打了。想把兵力全部撤回
          代码走读:如果客户端直接面向底层对象进行操作。很难对这种需求进行扩展
必须修改客户端的代码,这样违反了开闭原则。
 
 
 

移动App架构设计

移动App架构设计 本文主要总结了几种常用的架构模式, 基本是层层递进的转载请注名出处 http://blog.csdn.net/uxyheaven, 良好的排版在https://github....
  • koocui
  • koocui
  • 2016年07月21日 14:45
  • 356

移动App框架模式了解【待看】

移动App架构设计 本文主要总结了几种常用的架构模式, 基本是层层递进的转载请注名出处 http://blog.csdn.net/uxyheaven, 良好的排版在https://github.co...
  • adparking
  • adparking
  • 2016年12月06日 11:07
  • 551

高效使用Vim编辑器--Vim编辑器常用命令学习笔记

Vim编辑器常用命令
  • Leeds1993
  • Leeds1993
  • 2016年10月30日 16:51
  • 298

移动互联网的架构设计浅谈一

一,图片体验的优化。        在手机上显示图片,速度是一个非常重要的体验点,试想,如果您打开一个网站,发现里面的图片一直显示失败或者是x,稍微做得好一点的,可能是一个不消失的loading或者是...
  • tenfyguo
  • tenfyguo
  • 2014年06月24日 15:34
  • 8934

命令模式—C++实现撤消重做

Command结构 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 适用性 1、抽象出待执行的动作以参数化某对象,你可用...
  • wcl0617
  • wcl0617
  • 2017年11月22日 14:25
  • 131

移动互联网应用技术架构简介-Android

Android历史Android是一款基于Linux的操作系统,面向触摸屏移动设备如智能手机和平板电脑. 最早是由位于加州的Android公司所开发, 2003年创立,2005年被Google收购。A...
  • iefreer
  • iefreer
  • 2013年05月22日 20:25
  • 7491

Activiti核心架构之职责链与命令模式

Activiti核心的骨架是:命令模式+职责链 本文的代码版本:activiti 5.22一、职责链1、什么是职责链模式http://blog.csdn.net/jiankunking/articl...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2017年06月26日 07:33
  • 1053

【架构篇】Android移动app架构设计浅谈

前言 架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 软件架构设计目标: 1.可靠性(Reliable)。软件架构的可靠是产品设计的前提。 ...
  • hudan2714
  • hudan2714
  • 2016年03月27日 22:01
  • 2073

几种常见架构模式

6.2.2  几种常见架构模式 前文讲过,在实践中,人们总结出了一些常用的软件系统结构高层模式,以供应用系统设计时参考。这些模式包括:单服务两层/多层C/S;MVC结构;面向服务的SOA与多服务集合...
  • haifengid
  • haifengid
  • 2016年07月18日 13:57
  • 11932

软件架构设计之常用架构模式

1.分层架构:分层架构是使用最多的架构模式,通过分层使各个层的职责更加明确,通过定义的接口使各层之间通讯,上层使用下层提供的服务。分层分为:严格意义上的分层,一般意义的分层。严格意义的分层是n+1层使...
  • kepoon
  • kepoon
  • 2014年04月02日 10:24
  • 2524
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:移动架构14_命令模式
举报原因:
原因补充:

(最多只允许输入30个字)