2009-06-13 83 views
2

说我有4个按钮,我希望每个人都做不同的事情。我不想要一个大开关语句,我根据按下哪个按钮来做不同的事情,也不需要单击每个按钮的单独方法。命令模式是解决这个问题的好方法吗?如何使用命令模式来降低菜单的复杂度?

回答

5

是的,这是命令模式的常用用法。假设你有一组类(例如Open,Save,Print),每个类都提供一个execute()方法,然后你可以将其中一个类的实例与你的按钮相关联,按钮的onclick事件可以调用execute )而不知道相关命令的具体细节。

Wikipedia article给出了命令模式的其他常见用法。

+0

但是,如何最好地使关联 - 在按钮内(例如,有一个特殊的“CommandButton”类,在某种查找中保持对ICommand ...或类外的引用? – Iain 2009-06-13 17:27:39

0

是的。我曾经帮助将相同的操作绑定到菜单单击和工具栏单击。它工作得很好。它不以任何方式革新任何东西,而是给你更多更干净的代码并摆脱讨厌的开关语句。

我有代码的地方,我会尝试挖掘给你一些例子。