zoukankan      html  css  js  c++  java
  • IOS设计模式学习(20)命令

    1 前言

    在面向对象中,把指令封装在各种命令对象中。命令对象可以被传递而且在指定时刻被不同的客户端复用。这一概念精心设计而来的设计模式叫做命令(Command)模式。

    2 详述

    2.1 简述

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

    将请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。

    2.2 何时使用

    (1)想让应用程序支持撤销与恢复;

    (2)想要对象参数化一个动作以执行操作,并用不同命令对象来代替回调函数;

    (3)想要在不同时刻对请求进行指定,排列和执行;

    (4)想记录修改日志,这样在系统故障时,这些修改可在后来重做一遍;

    (5)想让系统支持事务,失误封装了对数据的一系列修改。事务可以建模为命令对象。

    3 结语

    消除应用程序中命令,调用器,接收器和客户端的耦合,其好处显而易见。如果特定的命令需要在现实中修改,那么其他组件中得大部分都不受影响。而且添加新的命令类非常容易,因为不必为此修改已有的类。

    以上是所有内容,希望对大家有所帮助。

  • 相关阅读:
    抽象类
    《大道至简》第七八章读后感
    使用try输出成绩
    《大道至简》第六章读后感
    课后作业2015.11.9
    《大道至简》第五章读后感
    课后作业2015.11.1
    动手动脑20151024
    字串加密
    《大道至简》第四章读后感
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3172455.html
Copyright © 2011-2022 走看看