码迷,mamicode.com
首页 > 移动开发 > 详细

iOS设计模式 - 命令模式

时间:2015-11-25 01:58:28      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:

命令模式

前言:

命令对象封装了如何对目标执行指令的信息,因此客户端或调用者不必了解目标的任何细节,却仍可以对他执行任何已有的操作。通过把请求封装成对象,客户端可以把它参数化并置入队列或日志中,也能够支持可撤销操作。命令对象将一个或多个动作绑定到特定的接收器。命令模式消除了作为对象的动作和执行它的接收器之间的绑定。

正文内容大纲:

1、电视机、遥控器与接收器之间的关系
2、改变一个视图的明暗程度(未使用命令模式)
3、命令模式介绍
4、改变一个视图的明暗程度(使用命令模式)
5、附录

命令模式

1.电视机、遥控器与接收器之间的关系

电视机没有遥控器当然也能够换台
如果要用遥控器,电视机上面肯定要有红外线接收器,专门用来接受遥控器的信息。
红外线接收器专门接受遥控器的信息,并转化成电视机里面的信息,让电视机识别。
  • 遥控器与接收器并非必要的设备
  • 接收器转换遥控器的信号
  • 电视机、遥控器与接收器之间的关系:电视机可以独立,不用遥控器和红外线接收器

技术分享

2.改变一个视图的明暗程度的小实例项目(未使用命令模式)

 

3.命令模式介绍

命令模式的UML图:

技术分享

概述

在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要
对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种
情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的
松耦合。这就是命令模式(Command Pattern)。

4.改变一个视图的明暗程度(未使用命令模式)

  • 设定接受者
  • 将改变明暗的操作抽象成对象
  • 撤销操作

代码:

命令的发起者和命令的执行者是解耦的。

提供更完整的代码

5、附录

IOS命令模式的学习网站:http://www.cnblogs.com/YouXianMing/p/4888402.html

iOS设计模式 - 命令模式

标签:

原文地址:http://www.cnblogs.com/goodboy-heyang/p/4993452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!