Flutter开发App的未来及其在各行业的应用潜力分析
606
2022-10-12
Aha!设计模式(79)-命令模式(4)
本文提供命令模式的Python语言示例。首先是Receiver类:
这个类只是命令实例的操作对象,并不是命令模式必需的部分。它的功能很简单:进行简单的加法运算之后将结果按照prefix指定的缩进输出。
在Python语言中Command基类并不是必须的,但是为了保持和其他语言的一致性,还是予以保留。如果有必要可以实现共通功能。
具象命令类用于定义execute的实际动作。上面的例子中,execute方法调用了receiver的action方法。在实际的开发中可以定义多个具象类,每个具象类可以针对不同(类型或实例)的receiver调用不同的方法。
MacroCommand类实现了简单的命令组合功能。在它的execute中,每个事先添加的子命令都可以被按照一定顺序调用。在实际的开发中,甚至可能出现多层嵌套的情况。
Invoker是实际的动作调用者。它会根据需要执行Command的动作,而并不会关心Command的实际内容。
接下来是用命令模式的的例子。
在生成命令的部分,构建了两个命令。一个是+10动作的简单命令,另一个是包含+1,+2,+3,+4动作的复合命令。两个命令作为参数分别传递给invoker以后被执行。其结果如下:
通过输出的嵌套结构,可以更加容易地理解两个Command的执行情况。
觉得本文有帮助?请分享给更多人。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~