當前位置:
首頁 > 最新 > 年薪30萬必備開發技能!

年薪30萬必備開發技能!

第一部分:什麼是MVP?什麼是MVC?

1、什麼是MVP?

M:數據層(資料庫、網路、文件存儲等等...)

V:View和Activity和Fragment以及它們的子類

P:中介->Presenter(作用:將M層數據和UI層進行關聯和交互中介)

2、什麼是MVC?

M:單純Model(Java Bean對象)

V:View以及子類

C:Fragment和Activity以及子類

第二部分:開始進行MVP搭建

內容一:MVP入門?

·第一步:看一個基本案例?->普通代碼實現

·第二步:MVP實現->簡單案例->分層次設計

· 第三步:MVP實現->優化->優化第1步->方法綁定

分析問題:因為當我們的Activity關閉的時候,但是網路請求還正在進行,然而我們希望是不要刷新UI了,因為銷毀了,解除UI層和數據層關聯?

解決方案:方法綁定(綁定、解綁)

attachView->綁定

detachView->解綁

·第四步:MVP實現->優化->優化第2步->抽象

分析問題:現在寫一個功能,你覺沒什麼,但是如果我寫了20個類(寫了100個類),那麼你是不是要綁定(解除綁定)100次?會想死。目的就是為了不需要這麼麻煩,統一管理即可(統一綁定)

解決方案:抽象類(抽象類->抽取)->BasePresenter

·第五步:MVP實現->優化->優化第3步->BaseView解決

分析問題:BasePresenter類型類死了,如果你有很多的模塊,那麼沒發抽象。然而希望動態。

解決方案:通過BaseView解決。成立

·第六步:MVP實現->優化->優化第4步->泛型設計

分析問題:每一次強制類型轉換,想死,一個類還好,100個類,強制類型轉換100次。

解決方案:泛型設計

·第七步:MVP實現->優化->優化第5步->抽象類BaseActivity->具體實現

分析問題:現在有一個Activity你需要綁定,還好,如果我有30個Activity,50個Fragment,怎麼辦?代碼冗餘?

解決方案:抽象類->抽象出綁定和解除綁定

·第八步:MVP實現->優化->優化第6步->BaseActivity中抽象->抽象實現(BasePresneter和BaseView)

分析問題:父類BaseActivity寫死了,還是沒有滿足要求?只能夠用LoginPresenter_6,然而我們的目的是能夠兼容所有的模塊

解決方案:抽象實現(BasePresneter和BaseView)

第二步:MVP進階?

內容二:MVP進階?

·第九步:MVP實現->優化->優化第8步->Fragment登錄功能

分析問題:對Fragment進行操作(Fragment抽象)

解決方案:抽象

·第十步:MVP實現->優化->優化第9步—>Fragment抽象

分析問題:對Fragment進行操作(Fragment抽象)

解決方案:抽象->泛型設計

·第十一步:MVP實現->優化->優化第10步->針對LinearLayout、Button集成MVP

需求:集成->實現登錄功能

·第十二步:MVP實現->優化->優化第11步->抽象為一個類

分析問題:每一個模塊基類都需要綁定和解除綁定,很多代碼冗餘。

解決方案:抽象一下(抽象為一個類)

·第十三步:MVP實現->優化->優化第12步

分析問題:能夠滿足開發要求?針對Activity做一些處理,生命周期中控制(數據緩存、狀態處理)針對Fragment做一些處理,生命周期->MVP框架進行緩存?

Activity、Fragment、View等等...處理是不一樣,然而我們之前的抽象沒發滿足要求

解決方案:針對不同模塊,針對性的處理->代理模式

代理一:

代理->針對的是->MVP綁定和解綁

分析角色劃分?

目標介面:綁定和解除綁定回調介面(MvpCallback)

目標對象:具體實現(ActivityCallbackImpl、FragmentCallbackImpl等等...)->Activity實現->MvpActivity

分析:創建presenter、創建view等等...

代理對象:代理實現(MvpCallbackProxy)

代理二:

代理->針對的是->Activity整體代理->生命周期代理

分析角色劃分?

目標介面:ActivityMvpDelegate

目標對象:ActivityMvpDelegateImpl

代理對象:MvpActivity(Activity)

功能實現:

第一個部分:綁定和解綁->目標對象(生命周期)

第二個部分:實現MVP綁定和解綁->目標對象(MvpActivity)

第三步部分:測試

第四步

想要成為技術大神

往下看

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Android開發中文站 的精彩文章:

TAG:Android開發中文站 |