乍看起来,命令模式有点复杂,但其实细分起来,有点像是对模板模式中父子类在一个统一控制类中进行了一个封装。封装类中使用的是可扩展的父子命令对象。在命令子类中可以封装业务对象。
模板方法的使用场景主要是提供了对多态的一个统一访问入口。并且根据入口对象的命令对象,来执行命令。
命令模式容易导致命令子类的膨胀。
我觉得这里比较重要的一个思想就是封装,提供了一个统一处理的入口,而且在这个入口中我们还可以加入其它的一些业务处理,变化的是命令对象,入口可以不变。
在命令模式的扩展子命令类中,我们可以定义命令处理类(业务处理类)的对象,这个时候我们定义什么样的对象就处理什么业务(你比如说EntityManage),而这个命令子类的扩展是非常方便的,这个又有点像中介者模式,这个命令的扩展类像是一个中介者类。
这里我想:好像有点像分层封装,像网站架构的三层模型。control,view,service层。