深圳APP開發(fā)公司關(guān)于APP開發(fā)公司關(guān)于Android項目架構(gòu)模式結(jié)合多年APP開發(fā)經(jīng)驗對其進行分類整理,我們總計將其分為MVC架構(gòu)、MVP架構(gòu)、MVVM架構(gòu)、MVP+VM架構(gòu),下面博納網(wǎng)絡(luò)將逐一對其所起的作用進行分享:
1.APP開發(fā)關(guān)于MVC架構(gòu)
MVC(Model-View-Controller)即模型-視圖-控制器,使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。View是用戶看到并與之交互的界面,Android系統(tǒng)中主要指Activity或Fragment,View從Model中取得它需要顯示的數(shù)據(jù)和狀態(tài);Model主要提供數(shù)據(jù)存取功能;Controller處理業(yè)務(wù)邏輯,Android系統(tǒng)中也主要指Activity或Fragment。如圖10-1所示是一個標準的MVC框架圖。
圖10-1在MVC里,View是可以直接訪問Model的,View里會包含Model信息,不可避免的還要包括一些業(yè)務(wù)邏輯。在Android開發(fā)中,Activity和Fragment往往既是V又是C,從而導(dǎo)致代碼極其臃腫。
2.APP開發(fā)關(guān)于MVP架構(gòu)
MVP(Model-View-Presenter)即模型-視圖-表示器。在MVP中View并不直接和Model交互,它們之間的通信是通過Presenter(相當于MVC中的Controller)來實現(xiàn)的。在MVP模式里,View主要實現(xiàn)界面顯示和處理用戶操作,如點擊或輸入等功能。除此之外就不應(yīng)該有更多的內(nèi)容,絕不容許直接訪問Model,這就是與MVC很大的不同之處。View是用戶看到并與之交互的界面,Android系統(tǒng)中主要指Activity或Fragment,其含有一個Presenter成員變量。通常View需要實現(xiàn)一個邏輯接口,將View上的操作轉(zhuǎn)給Presenter實現(xiàn),最后Presenter調(diào)用View邏輯接口將從Model獲取的數(shù)據(jù)返回給View。Presenter主要作為溝通View和Model的橋梁,它承接View傳來的用戶需求,完成一些業(yè)務(wù)邏輯的處理,并將從Model層獲取的數(shù)據(jù)返回給View層,使得View和Model間沒有耦合,也將業(yè)務(wù)邏輯從View層抽離出來;Model主要提供數(shù)據(jù)存取功能,Presenter通過Model層存儲和獲取數(shù)據(jù)。
如圖10-2所示是MVP框架圖。
圖10-2在MVP中,所有的邏輯都在Presenter層實現(xiàn),這層的負擔較重,而且相比MVC會多出許多接口方法。
3.APP開發(fā)關(guān)于MVVM架構(gòu)
MVVM(Model-View-ViewModel)的框架圖如圖10-3所示。
ViewModel大致上就相當于MVP的Presenter和MVC的Controller了,而View與ViewModel間是直接交互,用數(shù)據(jù)“綁定”的形式實現(xiàn)數(shù)據(jù)雙向同步。在開發(fā)AndroidAPP時,可以使用Android系統(tǒng)提供的DataBinding技術(shù)實現(xiàn)數(shù)據(jù)綁定。
4.APP開發(fā)關(guān)于MVP+VM架構(gòu)
MVVM與MVP相比,優(yōu)化了數(shù)據(jù)頻繁更新的解決方案,但某種程度上又把View和Model耦合在了一起。在實際開發(fā)中,純粹利用DataBinding技術(shù)并使用MVVM架構(gòu)的情況不多,往往是把MVP架構(gòu)和DataBinding技術(shù)一起使用,具體框架圖如圖10-4所示。
好了,APP開發(fā)公司本文關(guān)于“Android項目架構(gòu)模式詳解”知識就分享到這里,希望能給您幫助,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。