zoukankan      html  css  js  c++  java
  • iOS设计模式之命令模式

    命令模式

    基本理解

    • 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化;对请求队列或记录请求日志,以及支持客可撤离的操作。
    • 苹果的Target-Action调用机制已经实现了命令模式。NSInvocation包含一个target对象,一个方法和一些参数。这个对象可以按需要动态修改。这是一个非常好的命令模式的例子。减少对象和接收对象之间的操作,直接写成一个请求或请求链。

    命令模式的优点

    • 它能够容易地设计一个命令队列
    • 在需要的情况相爱,可以较容易地将命令记入日志
    • 允许接受请求的一方决定是否否决请求
    • 可以容易地实现对请求的撤销和重做
    • 由于加进新的具体命令类不影响其他的类,因此增加新的具体命令类很容易
      *命令模式把请求一个操作的对象与知道怎么执行一个操作的对象分隔开。

    何时使用命令模式

    • 想让应用程序支持撤销与恢复
    • 想用对象参数化一个动作以执行操作,并用不用的命令对象来代替回调函数
    • 想要在不同时刻对请求进行制定、排列和执行
    • 想记录修改日志,这样在系统故障时,这些修改可在原来重做一遍
    • 想让系统支持事务,事务封装了对数据的一系列修改。事务可以建模为命令对象

    在Cocoa Touch框架中使用命令模式

    • NSInvocation
      它是静态描绘的OC消息。
    • NSUndoManager

    备注

    这个设计模式学习的不太深刻,所以就没有例子可介绍了,不过在网上看了一个例子,感兴趣的可以下载查看:
    http://pan.baidu.com/s/1sdGsA

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/zhanggui/p/4709317.html
Copyright © 2011-2022 走看看