Android App 開發實戰系列 Part 4. ViewModel + View

Part 4. 我們要來講解 ViewModel + View,同時會講解 MVVM 的大原則和核心概念。

上一個部份 Part 3. 我們完成了 Model 層 – MovieRepo,這 Part 4. 將要來介紹 ViewModel 來為 UI 提供所需要的資料,針對使用者操作做出對應的動作,以及介紹 View 如何使用 ViewModel 所提供的資料流來呈現 UI。

完整文章已轉移至 Medium,這邊不再更新會陸續轉移過去,未來在 Medium 繼續寫新文章,文章歡迎「拍手」按讚以及 Follow。

https://medium.com/enginebai/moviehunt-part-4-e1ef62c8099b

9 thoughts on “Android App 開發實戰系列 Part 4. ViewModel + View

Add yours

  1. 曾經維護過一個專案,和文章中說的狀況類似,同樣的資料複製了好幾種不同形式的方式儲存和顯示,如果資料改了,所有變數都要一起改,沒改到就出現bug,實在非常花時間找問題。

    1. 一開始 Google 主推 MVP(更之前我就沒跟到),後來發現到 MVP 存在一些缺點:
      1. 最大的問題:VP 存在一對一的「耦合」關係,也就是說 Presenter 如果有相同邏輯,是無法抽換給其他 View 使用的。如果要改其中一邊,相對的兩邊都需要改動。
      2. 太多介面,一個 View 對上一個 Presenter 就要三個介面(V / P 各一個,還有一個父介面來包含這兩個介面)

    2. 後來 Google 推出 MVVM,調整 VP -> ViewModel + View,由 ViewModel 去提供介面需要的資料流給要呈現的介面去使用,如果一個使用者點數需要在不同地方顯示,ViewModel 只需要實作一次邏輯,不同的 View 就只需要訂閱該資料流就可以顯示。這樣做可以避免耦合和重工。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑