图二:
命令模式中:
Invoker为命令的发起者。
command中封装了命令相关的过程,以及相关的命令执行对象(Receiver)。
Receiver为命令的接收者、执行者,在图一为Group。
策略模式相同不同:
相同:每个Invoker为执行者,而command像是每一个策略。
不同:command中封装了Receiver对象。而策略模式中,策略对象是自己执行整个过程
中介者模式相同不同:
相同:
1.有相同的Receivery对象,中介者中叫colleague对象。
中介者和命令对象都需要Receivery对象和colleague对象完成操作。
2.中介者模式中的每个函数(每个动作)相当于 命令模式中的一个command
不同:
中介者对象相当于包含了全部的命令。而命令模式中,每个命令都单独绑定在一个Invoker(执行者)中