第二天(MVP和MVC是什麼,有什麼區別)

一天一面試題---第二天(MVP和MVC是什麼,有什麼區別)

MVC: View接收到用戶的操作之後,將用戶的操作來交給Controller(activity),Controller完成業務邏輯,將得到的結果封裝成Model,再進行View的更新.Controller做的事情非常多,即做了View層邏輯,又做了Model層邏輯,導致過度臃腫.

View: layout也可以是自定義View

Model: JavaBean,SqliteDataBase;

Controller: Activity

比如我們創建一個項目的時候,View:activity_main.xml  Controller:MainActivity  當我們獲取到數據的時候創建的Bean就是Model

當用戶點擊一個Button時,Controller層處理Button的點擊事件,開始向網絡請求,獲取到網絡數據,封裝成一個JavaBean(Model),Model則將數據傳給Controller,再由Controller更新UI.

MVP:當View層接到用戶點擊的事件後,會將用戶的操作交給Presenter,Presneter收到View層指令,可以自己處理,也可以交給Model層處理,一般情況是交給Model層來處理,當Model層處理完事件後,將得到的結果通過接口返回給Presneter,最後Presneter則將封裝好的數據轉給View,最後View層進行渲染;

View:Activity,Fragemnt. View層只有Presenter的引用,

Presneter:就是View和Model層的橋樑. Presenter層既會有View層引用,也會有Model層引用

Model:數據處理層. Model層只有Presneter的引用

所以MVP其實也就是通過Presenter這個橋樑,來接通View和Model.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章