Android體系

Android三種結構模式
1、在Android開發中,我們通常會去将項目分成一個個的子產品檔案夾,
來進行管理維護,有的人是直接按照功能來分子產品,這也是最常見的,
有的人則會按照一定的設計模式,再結合功能來進行項目模式設計,
比如MVC,MVP、MVVM。
2、主講MVP和MVC的差別
MVC的的結構模式
1、從中很容易看出MVC的大緻流程,
使用者通過操作View來發送使用者請求;
Controller接收到 使用者請求 後,
負責決定應該調用哪個Model來進行處理;
然後Model根據使用者請求進行相應的業務邏輯處理,
并傳回資料;
最後Controller調用相應的視圖View
來顯示Model傳回的資料。
MVP的結構模式
1、View發送指令給Presenter,
Presenter擷取指令後,
調用響應的Model進行業務邏輯處理,
然後傳回資料給Presenter,
Presenter根據Model
傳回的資料再來調用相應的View
為什麼不使用MVC
在Android中,對于Activity并沒有明确的說它是屬于View還是Controller的範疇,
Activity既有View的性質,
也具有Controller的性質,
是以導緻MVC在Android中很難明确分工使用,
導緻Activity很重。而且MVC中View會與Model直接互動,
是以Activity與Model的耦合性很高,當後期維護時,稍有變動,
可能Model、Activity、XML都會跟着改變,工作量很大,成本太高
使用MVP的好處
在MVP與MVC最大的不同之處是,
MVP将M與V分隔開來,通過P互動,這樣在Android中,
就可以明确的把Activity當作View處理,
雖然可能還有一點邏輯在其中,但是已經無傷大雅;
View和Model不直接互動,當View有變動或者Model有變動時,不會互相影響有太大變動,
耦合性低,對于後期維護來說,特别是項目越來越龐大時,
可以很快的理清項目結構,找到需要修改的地方,大大的縮短了工作量。
而且,因為View與Model分離的緣故,Model可以單獨進行單元測試。