CH10_用类来表现

发布时间:2024年01月17日

Command模式

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

类图

在这里插入图片描述

说明

  • Command(命令)

    Command角色负责定义命令的接口(API)

  • ConcreteCommand(具体的命令)

    ConcreteCommand角色负责实现在Command角色中定义的接口(API)。

  • Receiver(接收者)

    Receiver角色是Command角色执行命令的对象,也可以称其为命令接收者。

  • Client(请求者)

    Client角色负责生成ConcreteCommand角色并分配Receiver角色。

  • Invoker(发动着)

    Invoker角色是开始执行命令的角色,它会调用在Command角色中定义的接口(API)。

命令模式的优点

  • 能较容易地设计一个命令队列
  • 在需要的情况下,可以较容易地将命令记入日志
  • 允许接收请求的一方决定是否要决定请求
  • 可以容易地实现对请求的撤销和重做
  • 由于加进新的具体命令类不影响其他的类,因此增加新的具体命令类很容易

Interpreter 模式

解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子

类图

在这里插入图片描述

说明

  • AbstractExpression(抽象表达式)

    AbstractExpression角色定义了语法树节点的共同接口(API)。

  • TerminalExpression(终结符表达式)

    TerminalExpression角色对应BNF中的终结符表达式。

  • NonterminalExpression(非终结符表达式)

    NonterminalExpression角色对应BNF中的非终结符表达式。

  • Context(文脉,上下文)

    Context角色为解释器进行语法解析提供了必要的信息

  • Client(请求者)

    为了推导语法树,Client角色会调用TerminalExpression角色和NonterminalExpression角色。

文章来源:https://blog.csdn.net/qq_27953479/article/details/135655645
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。