zoukankan      html  css  js  c++  java
  • [Design] Command Pattern

      行为模式主要是责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。
      行为模式分为类的行为模式和对象的行为模式两种。
    类的行为模式
        类的行为模式使用继承关系在几个类之间分配行为。
    对象的行为模式
        对象的行为模式则使用对象的聚合来分配行为。
    --------------------------------------------------------
    命令模式

    命令模式是对象的行为模式。以称为行动模式或交易模式。

    命令模式把一个请求或者操作封装到一个对象中,命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。

     

    结构及角色

    • 1、客户(Client)角色

    创建一个具体命令对象并确定其接收者。

    • 2、抽象命令(Command)角色

    声明所有具体命令角色必须实现的接口,一般由抽角类或接口实现。

    • 3、具体命令(Concrete Command)角色

    实现抽象命令角色所声明的接口。并定义一个接收者和行为之间的弱耦合,负责调用接收者的相应操作。

    • 4、请求者(Invoker)角色

    负责调用命令对象执行请求,相关的方法叫做行动方法。

    • 5、接收者(Receiver)角色

    负责具体实施和执行一个请求。任何一个类都可以成为接收者,实施和执行请求的方法叫做行动方法。

  • 相关阅读:
    CCF-Python的内置函数们
    CCF2019-03-Python题解
    Find a Number (记忆化+BFS)
    LeetCode15:三数之和(双指针)
    LeetCode:不用加号的加法(位运算)
    剑指Offer43:1~n整数中1出现的次数(数位DP)
    LeetCode190:颠倒二进制(位运算分治! 时间复杂度O(1))
    LeetCode5716:好因子的最大数目(数学、快速幂)
    python学习笔记:python的字符串拼接效率分析
    LeetCode1806:还原排列的最少操作步数(置换群 or 模拟)
  • 原文地址:https://www.cnblogs.com/abeen/p/1441894.html
Copyright © 2011-2022 走看看