在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




