设计模式之命令模式的一点补充

本文详细解析了命令模式的概念、组成部分及其在软件设计中的应用价值。通过阐述调用者、命令、接收者和客户端的角色分工,揭示了命令模式如何实现命令的抽象与分离,提高代码的复用性和灵活性。特别强调了模式中调用者与客户端的关系,以及这一关系在实际编程实践中的体现。最后,通过实例分析加深读者对模式的理解,同时感谢一位网友的提问,促使作者对此有了更深入的思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在命令模式中有4个角色:调用者,命令,接收者和客户端,调用者的责任是发送命令请求,命令负责对当前的命令接收者处理过程的调用(传达作用)。而接收者负责具体的命令执行,也就是负责命令的具体处理逻辑。客户端的作用就是根据一定的参数,创建具体的命令和接收者,并决定命令由谁(接收者)来执行(请求和处理配对)。需要注意的是调用者可以处在Client端,也可以不处在客户端(比如远程命令请求),因此就整个模式来讲,客户端角色对调用者的依赖就不是必须的了。也因为此,在命令模式的UML图中,是没有Client对调用者Invoker的依赖关系的。当然,虽然没有画,如果命令的调用者的调用请求也是由Client负责,那依赖就是比然的了。

后记:之所以写这篇短文,是因为有网友问到了这个问题,这位网友看得很认真和仔细,其实我刚开始学这个模式的时候并没有注意到这个问题,因为从示例代码中来看,Client端是应该对调用者角色有依赖关系的,但UML图中就没有这种依赖关系示意。当然,造成这个问题的主要原因还是在于大部分的示例代码都忽略了这个问题,有点想当然的了。在这里感谢这位网友的提问,也让我对这个模式有了更进一步的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值