我的功能区上有几个按钮(目前它只是一个拆分按钮和属于它的菜单上的几个按钮)。因此,我可以选择两种不同的操作处理程序设计模式。
模式 #1(常用方法)
<button id="Beep" onAction="DoStuff" />
<button id="Boop" onAction="DoStuff" />
public void DoStuff(Office.IRibbonControl control)
{
if (control.Id == "Beep") { ... }
if (control.Id == "Boop") { ... }
}
模式 #2(单独的方法)
<button id="Beep" onAction="DoBeep" />
<button id="Boop" onAction="DoBoop" />
public void DoBeep(Office.IRibbonControl control) { ... }
public void DoBoop(Office.IRibbonControl control) { ... }
我会选择模式 #2(除非处理非常小的调用或真正可示意图的操作),但在我看来,许多文章都提倡模式 #1(它将我的想法带到了 Java 操作侦听器模式 à la 90 年代)。作为丝带现实的新手,我仍然更想知道其他程序员对这个主题有什么建议。
这取决于触发事件时控件应执行的操作。如果控件必须执行类似的东西,或者您可以概括其操作,那么最好使用模式 1,但一般来说,最好使用模式 2,因为即使您更改这些 ID 的值,您的代码也会更容易理解,并且您的事件也会很好地工作。