命令模式主要是为了调用者invoker和接收执行者receiver之间的解耦。主要好处有
1、invoker可以保存命令队列,执行redo或者undo,或者决定命令运行方式,同步或者异步等等。
2、命令对象和客户端的调用可以有不同的生命期,命令执行时可能客户端调用程序已经完成。例如:命令的发起者是一台机器,命令的接收者是另外机器,可以将命令序列化进行传递,非阻塞式操作返回。
策略模式参与的角色没有命令模式多,只有策略的执行环境角色和策略角色。主要是在策略执行环境中,可以根据需要选择不同的策略实现,满足以后的策略扩展。
1、invoker可以保存命令队列,执行redo或者undo,或者决定命令运行方式,同步或者异步等等。
2、命令对象和客户端的调用可以有不同的生命期,命令执行时可能客户端调用程序已经完成。例如:命令的发起者是一台机器,命令的接收者是另外机器,可以将命令序列化进行传递,非阻塞式操作返回。
策略模式参与的角色没有命令模式多,只有策略的执行环境角色和策略角色。主要是在策略执行环境中,可以根据需要选择不同的策略实现,满足以后的策略扩展。