命令模式

2018-03-02  本文已影响19人  8813d76fee36

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

简介

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

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

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

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

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

Demo

适用场景

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

上一篇下一篇

猜你喜欢

热点阅读