2014-09-18 95 views
0

我的應用程序必須支持不同的用戶界面(Win Forms和WPF)。這意味着我必須封裝業務邏輯。 你會如何做到這一點?視圖模型和模型之間的MVVM層?

E.g. WPF與MVVM:

1)我應該在我的模型類(例如汽車,門,...)和視圖模型之間引入一個圖層嗎?例如通過控制類,經理類或服務類?

2)或者模型類(例如汽車,門,...)本身是否包含邏輯?

回答

0

模型類通常用於將數據傳入或傳出您擁有的任何UI層和業務邏輯。所以他們通常不應該包含任何邏輯。我還沒有嘗試過支持WPF和winforms(並且不能誠實地想出爲什麼這將是必要的),但AFAICT winforms根本不支持MVVM。是的,你可以做綁定(有點),但是你不能,例如,綁定ICommands到按鈕。

所以,我建議使用ViewModel作爲您的用戶界面和業務邏輯之間的橋樑。然後,在應用程序之間共享業務邏輯類。您的視圖模型應該非常薄並且相對容易創建和維護。類似的橋樑可能在winforms項目中很有用,或者也許只是簡單地在代碼隱藏中重新創建視圖模型代碼。

+0

謝謝!在你看來,當模型類不包含邏輯時,業務邏輯應該如何看起來像?你的意思是像一個服務或控制類具有所有的邏輯和操作啞模型? – user3084486 2014-09-18 17:08:49

+0

@ user3084486您的邏輯類獲取參數並返回結果。參數和結果是你的模型,邏輯駐留在方法的主體中。模型可以像整型一樣簡單,也可以像Person這樣複雜,具有與其他類型的其他實例相關的屬性和關係。設計自然流動。 – Will 2014-09-18 17:30:10

+0

好的,你如何調用這些包含邏輯的類? – user3084486 2014-09-18 20:06:42