2016-10-27 48 views
3

我想了解MVVM模式,並且存在一些不明確的問題。我的Xamarin Forms應用程序將有幾個視圖(這很明顯)。他們每個人都必須綁定到不同的ModelView類嗎?或者也許應該只有一個MV?MVVM模式中應該只有一個ViewModel類嗎?

+6

它依賴。通常每個View都有它自己的VM,但是兩個相似的視圖可以共享一個VM。對於每個View來說,使用同一個虛擬機是不尋常的,但對於一個可能有意義的簡單應用程序來說,這是不尋常的。 – Jason

回答

1

我一直認爲「每個視圖都有自己的虛擬機」 - 模型是一個綜合設計的子集。

我會從痛苦的經歷中說出:不要單獨基於它們所支持的視圖/ UI設計模型。如果沒有全面的模型後端,您將很難將所有的部分整合到一個連貫的,完整的商業模式中。貧血類,冗餘位,不完整和錯誤的驗證,相同的屬性 - 不同的名稱,與現有代碼不兼容,hacky glue代碼,程序員違反對方代碼,不可重用,不重用現有類。對於我們來說,這一切都在3個月的測試中失敗了。

1

Yes和No
- >基本的想法是,你ViewModel只能由一個視圖中使用。如果您使用ViewModel來填充某個區域或其他內容,那麼ViewModel將被「重複使用」,每次該視圖出現在不同的位置時。
- >您可以在視圖模型中使用多個模型。視圖模型的目的是抽象出業務/數據層(即模型)。 但是,使用多個模型通常表明視圖太大。你可能想把它分成用戶控件(它們有自己的視圖模型)。

參考文獻:

  1. With MVVM, does each UI window have its own ViewModel?
  2. In MVVM, is every ViewModel coupled to just one Model?
相關問題