2008-10-23 39 views
2

如何捕獲用戶在winform應用程序中的點擊而不會使代碼變得非常複雜? AOP是答案嗎?如何跟蹤儀器?用於winforms的AOP

回答

5

這確實取決於您的實際要求。

對於簡單/樣本/原型winforms應用程序,我會建議基本WinForms Event Handlers,與處理程序方法中的代碼(提供它不太重)。如果代碼繁重,包含硬性商業規則並且不與表單交互,那麼最好將代碼移動到另一個類並從事件處理程序調用它。

Aspect Oriented Programming需要這個進一步。它通常最適用於較大規模的項目。您仍然需要事件處理程序來處理表單元素(並且我建議堅持使用基於控件的事件處理程序 - 不要嘗試創建自己的全局事件處理工具),但應該調用Command對象(請參閱GangOfFour中的Command Pattern)。那些命令對象可以在應用程序的任何地方被調用。如果你需要檢測,那麼檢測應該在那些Command對象而不是WinForms事件上。您可以利用Inversion of Control等容器(如Castle Windsor)將註冊/審計注入到命令中,而無需使用Interceptor pattern完全更改您的應用程序。 Here's an example from David Hayden