Command模式与动态语言
来源:电子发烧友 作者:—— 时间:2011-06-28 09:41
在Gof的设计模式中,有一个模式引起的争议比较大,有很多人甚至认为这个模式应该排除在OO模式之外,原因在于它不具有OO的特性。不管怎么说,这个引起争议的模式还是非常特别的,只要我们静下心来分析一下,不难发现它的迷人之处。这个模式就是Command模式。
一、基本的Command模式
最简单的Command模式中,包含一个ICommand接口,接口只有一个方法Execute。不同的Command对象实现这个接口,客户端程序通过接口访问Execute方法的不同实现。

好像也没什么,这个模式太简单了,几分钟就能学会。
模式本身是简单的,但模式中包含的思想就不简单了。有人认为Command模式不够OO的主要原因就是它用OO的思想封装一个方法,将方法当作对象来使用。OO的思想中,所有的名词都是对象,比如说人;对象有自己的属性,比如说身高、体重;对象有自己的方法,比如说人会跑,所以有一个Run()的方法。对象、属性、方法是面向对象的几大基本特征。那这个Command模式在搞什么鬼——它居然将方法当作对象!太不可理解了,世界上根本就不会有Run这个对象。
Command模式的思想就是模糊了方法与对象的界限。上面说的场景其实可以用下面的方式来实现。

其中函数FunctionA、FunctionB、FunctionC分别对应到对象CommandA、CommandB、CommandC。不过采用Command模式比这种方法要更加灵活可变。
在Gof的设计模式中,有一个模式引起的争议比较大,有很多人甚至认为这个模式应该排除在OO模式之外,原因在于它不具有OO的特性。不管怎么说,这个引起争议的模式还是非常特别的,只要我们静下心来分析一下,不难发现它的迷人之处。这个模式就是Command模式。
一、基本的Command模式
最简单的Command模式中,包含一个ICommand接口,接口只有一个方法Execute。不同的Command对象实现这个接口,客户端程序通过接口访问Execute方法的不同实现。

好像也没什么,这个模式太简单了,几分钟就能学会。
模式本身是简单的,但模式中包含的思想就不简单了。有人认为Command模式不够OO的主要原因就是它用OO的思想封装一个方法,将方法当作对象来使用。OO的思想中,所有的名词都是对象,比如说人;对象有自己的属性,比如说身高、体重;对象有自己的方法,比如说人会跑,所以有一个Run()的方法。对象、属性、方法是面向对象的几大基本特征。那这个Command模式在搞什么鬼——它居然将方法当作对象!太不可理解了,世界上根本就不会有Run这个对象。
Command模式的思想就是模糊了方法与对象的界限。上面说的场景其实可以用下面的方式来实现。

其中函数FunctionA、FunctionB、FunctionC分别对应到对象CommandA、CommandB、CommandC。不过采用Command模式比这种方法要更加灵活可变。
上一篇:基于实例的智能工艺设计系统
下一篇:运放电源过压保护电路设计
- •关键节点落地! 美国芯片关税迈入“第二阶段”2026-04-15
- •中东局势升级:一场正在逼近的全球芯片供应链危机2026-03-24
- •突发!三星9万人准备罢工:全球芯片要变天了?2026-03-18
- •芯片价格全面失控:最高暴涨70%,这一轮半导体周期不一样了2026-03-18
- •2026最硬科技!原子级3D成像揭示芯片内部“鼠咬”缺陷,芯片研发从此不同2026-03-06
- •芯片战再升级!美政府采购禁令来袭,SIA强烈发声反对2026-03-05
- •阿里“造芯”走到关键一步?平头哥或冲击IPO2026-01-26
- •重磅消息!中国对日本进口芯片发起反倾销调查!2026-01-08
- •免费直播预告 | 从理论到实操,全面解析ADC/DAC芯片测试前沿方案!2025-06-17
- •摩尔斯微电子携手Gateworks,利用Wi-Fi HaLow革新工业连接2025-06-04






