我們的專案為什麼要引入架構設計?架構設計的目的是使你的專案模組化,實現模組內部高聚合、模組之間低耦合,這樣做的好處是在協同開發中,每個開發人員可以更專注的開發某一點,提高開發效率,並且專案結構清晰、可維護性高。
android的發展中,不同時期流行的架構演變主要是從mvc到mvp到mvvm,這裡我們就來介紹下三個專案架構。
mvc全名是model view controller,是模型(model)-檢視(view)-控制器(controller)的縮寫,mvc是軟體設計架構的典範,不僅用在android中,在前端、後端開發中都被廣泛使用。
mvc架構模式將業務邏輯、資料、介面進行分離,其中m層處理資料,v層處理介面,c層控制m層和v層的通訊,以此來實現介面和業務的分離。
在android中mvc的使用表現為:v層主要是xml布局檔案以及其他的自定義view檔案,m層主要是處理業務邏輯的類,c層主要在activity或
fragment中,如下:
mvc模式將資料和介面分離,是專案更加清晰,但是mvc中的controller層不僅要處理view跟model的互動事項,還需要處理很多view與使用者之前的互動,隨著專案的不斷增大
controller層就會變得越來越臃腫,就增加了測試和維護的難度。因此就進化出來mvp架構。
mvp 是mode、view、persenter的簡稱,mvp中mode負責資料、view負責介面、
persenter負責處理view和model之間的互動,在android中由於mvc中把互動工作都放在
controller中執行,也就是放在activity中,使activity變得臃腫,因此
mvp實現了進化,在
mvp中xml/
activity/fragment都為view層,
persenter用來處理業務邏輯,
persenter與model和view進行互動,是的
view和model耦合度降低,
activity工作得到了簡化,專案中大致事情如下(具體怎麼使用根據專案需求來):
mvp中業務邏輯放在p層中處理,越來越複雜的業務邏輯還是會使p層變得臃腫。
mvvm是mvp的公升級版,其中的vm是viewmodel的縮寫,
model負責資料實體,
view複雜介面對應xml和activity,viewmodel可以理解成是view的資料模型和presenter的合體,負責model和view之間的互動,處理業務邏輯,
viewmodel和view層之間的互動通過谷歌
的框架data-binding來完成,
而data binding可以實現雙向的互動,這就使得檢視和控制層之間的耦合程度進一步降低,關注點分離更為徹底,同時減輕了activity的壓力。
Android中架構模式 MVC
參考 android當中的mvc m 資料庫層,資料模型層,網路請求管理,資料儲存類的東西,都可以屬於m層,簡單點理解就是資料層,或者叫基礎層。v 這一層在android當中其實是xml,也就是res資源檔案下的layout們。可不是activity。c 這一層在android當中才是activit...
架構設計之MVC
一 簡介 mvc model view controller,模型 檢視 控制器 是xerox parc在二十世紀八十年代為程式語言smalltalk 80發明的一種軟體設計模式,已被廣泛使用。一種軟體設計典範,用一種業務邏輯 資料 介面顯示分離的方法組織 將業務邏輯聚集到乙個部件裡面,在改進和個性...
android之簡單易用的mvc
什麼是mvc?mvc的優點?mvc的缺點?mvc的適用情況?mvc分別為 模型 model 檢視 view 和控制controller mvc模式的目的就是應用系統的職能分工。model層實現系統中的業務邏輯。view層用於與使用者的互動。controller層是model與view之間溝通的橋梁,...