2011-04-27 54 views
3

我不會描述項目細節或我使用的框架,因爲問題更一般。如何連接用戶界面和業務邏輯

什麼是在用戶界面和邏輯之間創建靈活交互的最佳方式。 我很掙扎,因爲不斷髮現,我必須讓某些功能可供用戶通過某些UI進行更改,但該功能的代碼位於代碼深處,因此我必須執行大量重構。

在這種情況下你的方法是什麼?也許模擬基於事件的系統來分派/處理事件?在我的情況下,需求經常變化。

+1

你在問什麼是設計決定?我不認爲任何人都能在沒有看到你所面臨的實際問題的情況下回答這個問題。請不要在你的問題上更具體。 – gordanvij 2011-04-27 18:50:49

回答

5

使用MVx設計模式,例如MVC,MVP,MVVM

基本上:
* UI不應該調用BL。
* UI應該引發事件(或者更好的是,使用命令)。
* UI-raised-events /命令應該在UI之外處理並調用BL。
* BL不應該調用UI。
*修改後的數據應該引發事件或BL應引發事件。
* UI應該知道如何呈現數據(最好使用組合來呈現任何類型的數據,而不是整個UI依賴於不會更改的數據類型)。
* UI應刷新事件。

0

這真的很大程度上取決於您的應用程序。如果它是一個web應用程序,那麼您正在使用的框架可能有一些關於如何將UI代碼與buisness邏輯連接的最佳實踐(例如Spring @MVC)。

另一方面,如果您正在編寫桌面應用程序,我通常會使用obserever/observable模式讓我的UI代碼獲知有關底層模型的任何更改。再次,使用方法隨應用程序的上下文而變化。

+0

有趣。你有沒有關於如何將觀察者模式與winforms結合使用的例子?也許一個鏈接或一些示例代碼? – Martijn 2011-04-28 06:55:12

+0

我還沒有使用過WinForms,但我認爲.Net中的事件幾乎是你正在尋找的東西。查看本教程(以及其中的更多資源的鏈接)http://msdn.microsoft.com/zh-cn/library/aa645739(v=vs.71).aspx – 2011-05-20 06:13:48