设计模式学习笔记——命令模式

请求发送者(调用者)与请求接收者之间,隔着一个命令,这就是命令模式。


为什么要在中间搞一个命令对象作为中介?

请求发送者直接调用接收者不行吗?如果为方便替换,符合开闭原则,可以针对接口编程,弄一个请求接收者接口,具体的接收者实现这个接口就可以了。

究其原因,我猜是这样,先有请求发送者与请求接收者,现在需要将二者联系起来,又不好修改,因此在中间搞一个统一接口的命令对象。

因此,命令对象实质是适配器。

另外,命令对象里面一个个命令,对外可能很简单,但里面的代码,可能是具体接收者的方法的一系列调用,甚至是多个具体接收者的一系列调用,那么这又有了建造者模式的味道。

因此,命令模式是适配器模式+ 建造者模式的混合体。

============================================

另一种解释是,之所以在调用者和接收者之间增加一个命令模式,就是不想让调用者和接收者之间直接发生关系,就是解耦:将发送者的请求封装在命令对象中,再通过命令对象来调用接收者的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值