Android開發中MVC模式的使用

2021-06-19 03:35:34 字數 1464 閱讀 8719

一、概念mvc(model-view-controller):m是指模型,v是指檢視,c則是控制器。乙個模型可以對於多種檢視,比如一批資料,可以分別用列表檢視、網格檢視來展示。一種檢視也可以對於多種模型,如乙個資料列表,其資料可以是由本地資料庫或者網路通過不同的邏輯模型來獲得。使用mvc的目的是將m和v的實現**分離,從而使同乙個程式可以使用不同的表現形式。

二、android開發中的mvc檢視是使用者看到並與之互動的介面。在android應用開發當中,也就是view。在開發的過程中,我們一般採用xml進行描述,然後在使用時引入。在介面控制項較多的情況下,可以將多個控制項封裝在乙個自定view或者layout裡以方便操作顯示。

模型是資料和業務邏輯的封裝。對資料庫的操作、聯網資料獲取、業務計算等操作應該放在的該層。

控制器接受使用者的輸入並呼叫模型和檢視去完成使用者的需求。控制器本身不輸出任何東西和做任何處理,它只是接收請求並決定呼叫哪個模型去處理請求,然後再確定用哪個檢視來顯示該模型返回的資料。android的控制層通常由acitvity來擔當,因此使用mvc模式來開發應用時,activity的業務邏輯**應交割model層處理,同時acitivity的響應時間是5s,一些耗時的操作也不能放在activity當中。

三、android開發中mvc的應用在android應用開發中,使用mvc可以很好的將介面顯示與資料邏輯處理分開。其中對於mvc三層的功能職責劃分可以按以下方式:

view層:只負責介面顯示和更新;

model層:封裝資料庫讀取儲存、聯網資料獲取、檔案複製儲存等操作,只負責資料處理;

controller層:監聽view層裡使用者輸入(onclick、ontouch等)或者自定義的使用者互動事件(如下拉重新整理等),在監聽到view層相應的事件時,就呼叫對應的model進行資料處理,同時也根據需要(資料處理耗時的情況)對該model進行監聽,在監聽到該model資料處理完成後,就將獲取的資料交給view層去更新。

對於這種情況,我們可以將其封裝成乙個自定義view,如下所示

對應的model如下圖所示:

controller為

此例中controller為主activity,若乙個activity包含多個複雜的自定義view,可以為這每個view分別設定controller和model,然後由這個activity來管理。若介面元素比較簡單,可以不用封裝自定義view抽離出activity,只將model層分離出即可。

四、封裝自定義view減少層級的方法對於封裝自定義view時減少布局層級,一種方法是對inflate的布局檔案使用merge標籤。如下圖所示

其中content_view布局檔案為:

另外一種方法,可以不用inflate布局檔案,在需要用到的地方將其連同子view列出,並且在過載的onfinishinflate()對子view進行初始化即可。如下圖所示

在過載的onfinishinflate()中初始化子view

Android中架構模式 MVC

參考 android當中的mvc m 資料庫層,資料模型層,網路請求管理,資料儲存類的東西,都可以屬於m層,簡單點理解就是資料層,或者叫基礎層。v 這一層在android當中其實是xml,也就是res資源檔案下的layout們。可不是activity。c 這一層在android當中才是activit...

MVC開發模式

mvc開發模式 模型 model 檢視 view 控制器 controller route 具體來說 model一般就是我們的資料,比如查詢資料庫的一行得到data物件,或者經過處理後的資料。view 就是前端展示的資料物件,這裡的前端可以是網頁也可以是移動端介面等等。view是對model的封裝。...

ios開發中MVC模式的理解

mvc是80年代出現的一種軟體設計模式,是模型 model 檢視 view 和控制 controller 的縮寫。其中model的主要功能包括業務邏輯的處理以及資料的訪問,這是應用程式的主體部分。view的主要功能是用來跟使用者進行互動,實現資料的收集和展示,檢視是使用者看到和直接操作的的介面,它只...