美文网首页
命令模式

命令模式

作者: 8813d76fee36 | 来源:发表于2018-03-02 10:32 被阅读19次

    最近学习Hystrix,它使用了命令模式来实现对服务调用操作的封装。正好借此机会记录一下命令模式。

    简介

    命令模式,将来自客户端的请求封装成一个对象,从而让你可以使用不同的请求对客户端进行参数化。

    它可以被用于实现“行为请求者”与“行为实现者”的解偶,以便使两者可以适应变化。

    命令模式中存在如下角色:

    • Receiver
      它是具体业务的执行者。
    • Invoker
      它是命令的调用者。
    • Command接口
      定义了命令应具备的操作。
    • ConcreteCommand(CommandImpl)
      它是Command接口的具体实现,绑定了命令与接收者之间的关系。

    可以想象成Invoker是长官,Receiver是士兵,Command接口是长官都会下达哪些命令,ConcreteCommand是命令的具体实现(实际上是委托给Receiver)。

    长官将命令交给士兵,命令指示士兵应该做什么。长官不需要知道士兵具体都做了什么,他只需要等待士兵反馈的结果。

    Demo

    • Command接口


      Command接口
    • Receiver


      Receiver
    • MyCommand


      MyCommand
    • Invoker


      Invoker
    • 调用程序


      执行
    • 结果


      结果

    适用场景

    Invoker和Receiver关系非常类似于“请求”-“响应”模式,所以比较适用于记录日志、撤销操作、队列请求等。

    相关文章

      网友评论

          本文标题:命令模式

          本文链接:https://www.haomeiwen.com/subject/zkwoxftx.html