在MVC的架構,通常會把layout(xml)當成View,Activity當成Controller,
事實上,Activity 卻是Controller 與View 的混合,於是Activity既要做處理View,也負責商業邏輯。使得Activity越來越肥。
MVC -> MVP 的最大差異在於 Activity的商業邏輯移到Presenter,Activity 專心於View
MVP:
Model - 提供資料、儲存資料 例:SharedPreferences、呼叫API
View - 負責展示UI,如 Activity、Fragment
Presenter - 負責邏輯處理
來看看這個範例,輸入帳號密碼後,按下「LOGIN」顯示登入成功或失敗。
新增LoginActivty 為MVP 中的View
新增LoginContract ,裡面放了ILoginView、ILoginPresenter 2個Interface
新增LoginPresenter,負責商業邏輯,與Model互動。
建立 User Model,負責檢查帳號是否正確。(範例單純hard code判斷,一般在此與API 登入)
LoginActivity ( View )
LoginPresenter (Presenter)
User (Model)
https://github.com/evanchen76/MVP-Pattern
簡單易懂,太感謝了!
回覆刪除MARTYLISS PRO Nano Titanium HAND - iTanium-Arts.com
回覆刪除MARTYLISS PRO Nano Titanium HAND is the premium titanium HAND made from a genuine titanium core titanium trim as seen on tv developed for a high performance use. titanium pots and pans Made with titanium engine block an alloy $37.99 · can titanium rings be resized In titanium strength stock