MVVM – 簡介



組織程式碼井然有序且可能最可複用的方法是使用“MVVM”模式。模型、檢視、ViewModel(MVVM 模式)旨在指導你如何組織和構建程式碼,以編寫可維護、可測試和可擴充套件的應用程式。

模型- 它只儲存資料,與任何業務邏輯無關。

ViewModel- 它充當模型和檢視之間的連結/連線,並使事物看起來更漂亮。

檢視- 它只儲存格式化資料,並且基本上將所有內容委託給模型。

View Model

分離的表示層

為了避免將應用程式邏輯放在程式碼隱藏或 XAML 中而導致的問題,最好使用一種稱為分離表示層的技術。我們試圖避免這種情況,在這種情況下,我們將擁有 XAML 和程式碼隱藏,並且只需要直接使用使用者介面物件。使用者介面類還包含用於複雜互動行為、應用程式邏輯以及其他所有內容的程式碼,如下面的左側圖所示。

Separated Presentation
  • 使用分離的表示層,使用者介面類將更加簡單。它當然有 XAML,但程式碼隱藏儘可能少。

  • 應用程式邏輯屬於一個單獨的類,通常稱為模型。

  • 然而,這並不是全部。如果你就此止步,你很可能會重蹈覆轍,導致你走上資料繫結瘋狂之路。

  • 許多開發人員試圖使用資料繫結將 XAML 中的元素直接連線到模型中的屬性。

  • 有時這可以,但通常不行。問題在於模型完全關注應用程式的功能,而不關注使用者如何與應用程式互動。

  • 呈現資料的方式通常與資料在內部的結構方式有所不同。

  • 此外,大多數使用者介面都有一些不屬於應用程式模型的狀態。

  • 例如,如果你的使用者介面使用拖放,則需要跟蹤某些內容,例如當前拖動專案的所在位置,其外觀在移動到可能的放置目標時應如何更改,以及這些放置目標在專案拖動到其上方時如何更改。

  • 這種狀態可能會變得非常複雜,需要進行徹底測試。

  • 實際上,你通常希望在使用者介面和模型之間放置另一個類。這有兩個重要的作用。

    • 首先,它將你的應用程式模型適配到特定的使用者介面檢視。

    • 其次,它是任何重要的互動邏輯所在的位置,我的意思是讓你的使用者介面按照你想要的方式執行所需的程式碼。

廣告