MVP是在MVC架構基礎上演變過來的。其中P(Presenter)處理了Controller裏邊的邏輯,其實就是Presenter分擔了Controller的壓力。 MVP的數據流向如下圖所示,分別通過接口實現。
- 實際開發中Controller一般都是存在的。 只不過Controller會把邏輯處理部分交給Presenter去處理。Controller的角色就是負責把M、V、P 三方給串起來。
- MVP中Model和View沒有直接的交互,Presenter 通過接口分別和Model、View交互。
- View只負責展示,如果有響應事件需要處理數據,那麼會通過接口給Presenter去處理,處理完之後在由Present給View去更新UI。
- 會不會有人疑問網絡請求應該放在Controller還是Present。其實網絡請求回來的數據都是用於View展示的。如果Controller去做請求的話還要交給Presenter,然後Present在交給view。 view如果有相應事件需要網絡請求,那麼又會通過Presenter交給Controller, 顯然這沒有意義。
差不多就這些吧,有不對之處歡迎多多指正,謝謝!