观察者和命令设计模式,为什么菜单一般使用命令模式?

时间:2011-07-25 09:55:01

标签: design-patterns command-pattern observer-pattern

所有问题都在于,为什么菜单通常使用命令设计模式而不是Observer模式实现?

2 个答案:

答案 0 :(得分:1)

有两个方面,“调度”,从菜单中选择一个选项或点击一个按钮并运行一些代码。然后就是运行的实际代码。

我不知道您指的是哪个UI框架,但我希望在这两种情况下都能看到Observer和Command模式。我想知道发生了什么事情,菜单案例和Button案例只是由你的框架以不同方面可见的方式实现。

因此,对于菜单,您提供了不同的命令对象,您实际上从未看到导致调用命令的内部调度。我的猜测是在一些事件处理必须发生,所以Observer模式可能正在使用,它只是你没有看到它。

在按钮的情况下,被调用的代码可以被认为是一个命令对象,但我们更明确地将它连接到一个事件,所以我们首先看到Observer模式。

答案 1 :(得分:0)

我可以通过菜单项或按钮看到一个使用观察者模式的用例。假设有星座计算器。用户有一个按钮来开始占星生成。用户将单击发送给服务器的按钮和命令进行计算。稍后相同的按钮可以观察服务器状态,反之亦然,以便更新状态或从按钮显示打印和fire print命令。 所以观察者:事件需要派遣。 命令:执行的操作。