Command(命令):负责定义命令的接口

ConcreteCommand(具体的命令):负责实现在Command中定义的接口

Receiver(接收者):该角色是Command角色执行命令时的对象,也可以称其为命令接收者

Client(请求者):负责生成ConcreteCommand角色并分配Receiver角色

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