所有问题都在于,为什么菜单通常使用命令设计模式而不是Observer模式实现?
答案 0 :(得分:1)
有两个方面,“调度”,从菜单中选择一个选项或点击一个按钮并运行一些代码。然后就是运行的实际代码。
我不知道您指的是哪个UI框架,但我希望在这两种情况下都能看到Observer和Command模式。我想知道发生了什么事情,菜单案例和Button案例只是由你的框架以不同方面可见的方式实现。
因此,对于菜单,您提供了不同的命令对象,您实际上从未看到导致调用命令的内部调度。我的猜测是在一些事件处理必须发生,所以Observer模式可能正在使用,它只是你没有看到它。
在按钮的情况下,被调用的代码可以被认为是一个命令对象,但我们更明确地将它连接到一个事件,所以我们首先看到Observer模式。
答案 1 :(得分:0)
我可以通过菜单项或按钮看到一个使用观察者模式的用例。假设有星座计算器。用户有一个按钮来开始占星生成。用户将单击发送给服务器的按钮和命令进行计算。稍后相同的按钮可以观察服务器状态,反之亦然,以便更新状态或从按钮显示打印和fire print命令。 所以观察者:事件需要派遣。 命令:执行的操作。