2010-09-16 58 views
9

我不想將我的領域模型類存儲在與我的Web平臺相同的程序集中。項目結構中的模型文件夾對我來說無用。然而,我剛剛完成了音樂商店教程,並注意到他們如何創建一個「ViewModels」文件夾,這對我來說很有意義。從MVC到MVVM

將模型文件夾視爲ViewModels文件夾有意義嗎?有很多人這樣做嗎?有沒有像MVVM這樣的模式?

回答

15

如果你不完全信任你的表示代碼(或簡單地找到這種封裝更優雅),視圖模型是添加另一個抽象層次的東西。

也就是說,如果你的Person類有一個Delete方法或SSNumber財產,你可能想這個對象沒有傳遞到視圖,因爲這,概念,使其能夠調用刪除或顯示SSN,它必須不能夠。
爲了避免這種情況,您需要創建另一個類PersonViewModel,該類只包含可從視圖中調用的安全信息/方法。

這與將模型邏輯從MVC應用程序中取出沒有多大關係。無論您使用ViewModel封裝,您都可以爲您的模型創建一個單獨的項目並從Web應用程序中引用它。這樣做受到我目前閱讀的書籍的鼓勵。

4

領域模型設計業務邏輯和業務抽象的術語,它是有針對性地解決業務問題也許利用面向對象技術,結果是一個域模型實體和值對象的引用對方,相互作用與他人實現業務邏輯目標。另一方面,演示文稿是一個不同的視角,您最需要扁平化域對象以使其更容易綁定,您也可能對錶示層中域模型實體的某些屬性和屬性不感興趣,因此表示模型(視圖模型)是爲了查看目的而對模型進行更多定製,結構可能不同,您可以刪除一些不需要presenataion的字段,並添加一些僅用於表示目的的字段(如「IsIdEnabled」或SliderWidth,...)

0

由於上述Dx_,沒有像MVVC這樣的事情。

但是,這個精緻的談話很好地描述了MVVM:Deep Dive MVVM