1. 程式人生 > >Android之MVC、MVP、MVVM(Data Binding)

Android之MVC、MVP、MVVM(Data Binding)

本文旨在記錄最近總結的Android客戶端架構,作為學習筆記,歡迎批評指正。

一、概述

MVC:Model - View - Controller

MVP: Model - View - Presenter

MVVC:Model - View - ViewModel

這裡寫圖片描述

二、發展過程

MVC

  • Model:業務邏輯和實體模型;

  • View:佈局檔案;

  • Controller:Activity;

在Android中View對應的各種Layout佈局檔案,不像Web端那樣強大,處理能力有限。因此,很多對UI的操作都在Activity(Controller)中進行,加上Activity本身的工作(派發事件,根據事件呼叫Model層資料),使得Controller的任務十分繁重,程式碼冗長複雜,不易維護。

為了使View和Controller的界限分明,又出現了MVP的設計模式。

MVP

  • Model:業務邏輯和實體模型;

  • View:佈局檔案、Activity;

  • Presenter:連線View和Model;

MVP不同於MVC的最重要一點:View和Model徹底分離;

MVP的出現時View和Model的耦合度降低,簡化了Activity的工作。

Presenter和另外兩層的互動是通過定義好的介面協議進行的,每個Presenter可能包含一個或者多個介面,使得View或Model改變的時候,Presenter不需要改變,程式碼複用性高。

我們可以使用測試用的View,對Presenter進行測試,方便了單元測試

MVP更適合快速迭代開發

MVVM

  • Model:業務邏輯和實體模型;

  • View:佈局檔案和Activity;

  • ViewModel:連線View和Model;

ViewModel通過Data Binding和View進行雙向互動,每一方的變化都會在另一方體現出來。

Data Binding

Data Binding庫不僅靈活而且廣泛相容- 它是一個support庫,因此你可以在所有的Android平臺最低能到Android 2.1(API等級7+)上使用它。目前,Data Binding還不成熟,學習可用。用興趣的同學可參考這兩篇文章:

還有兩個MVP的例子:

相關推薦

Android開發模式MVCMVPMVVM的簡單介紹與區別

相信大家對MVC,MVP和MVVM都不陌生,作為三個最耳熟能詳的Android框架,它們的應用可以是非常廣泛的,但是對於一些新手來說,可能對於區分它們三個都有困難,更別說在實際的專案中應用了,有些時候想用MVP的,程式碼寫著寫著就變成了MVC,久而久之就對它們三個的選擇產生了

認清Android框架 MVCMVPMVVM

(2)知道這三種模式在Android中如何使用。 (3)走出data binding的誤區。 (4)瞭解MVP+data binding的開發模式。 本篇文章的demo我將會上傳到我的github上。 水之積也不厚,則其負大舟也無力 正如莊子在逍遙遊中說的,如果水不夠深,那就沒有能夠擔負大船的

androidMVCMVPMVVM三種模式詳解析

我們都知道,android本身就採用了MVC模式,model層資料來源層我們就不說了,至於view層即通過xml來體現,而 controller層的角色一般是由activity來擔當的。雖然我們專案用到了MVP模式,但是現在人們並沒有總結出一種規範,所以MVP模式的寫法並不

AndroidMVCMVPMVVM(Data Binding)

本文旨在記錄最近總結的Android客戶端架構,作為學習筆記,歡迎批評指正。 一、概述 MVC:Model - View - Controller MVP: Model - View - Presenter MVVC:Model - View - V

Android-architectureMVCMVPMVVMData-Binding

傳送門 MVC 結構簡介 例項分析 Controller控制器式 public class MainActivity extends ActionBarActivity implements OnWeatherLi

Android 程序架構: MVCMVPMVVMUnidirectionalClean...

不同 概念 可能 十年 tin gettext 聲明 數據 content 摘選自:GUI 應用程序架構的十年變遷:MVC、MVP、MVVM、Unidirectional、Cleanhttps://zhuanlan.zhihu.com/p/26799645 MV

AndroidMVCMVPMVVM具體解釋

line 業務邏輯 指令 問題 今天 操作 才幹 入口 pre 前言 今天有時間就剛好有想寫關於這幾個名詞。對於我來說。事實上這麽多名詞、思想歸根究竟就是要依據項

Android 架構設計:MVCMVPMVVM和元件化

MVC、MVP和MVVM是常見的三種架構設計模式,當前MVP和MVVM的使用相對比較廣泛,當然MVC也並沒有過時之說。而所謂的元件化就是指將應用根據業務需求劃分成各個模組來進行開發,每個模組又可以編譯成獨立的APP進行開發。理論上講,元件化和前面三種架構設計不是

android原始碼設計模式——框構模式MVCMVPMVVM

一、框架模式、設計模式、架構模式的概念理解        通常來講框架面向於一系列相同行為程式碼的重用,而設計則面向的是一系列相同結構程式碼的重用,通常所說的架構則介於框架與設計之間 二、MVC、MVP、MVVM三種設計模式        2.1、MVC模式,常見的應用模式,

細說Android框架設計三劍客MVCMVPMVVM

    最近幾年的移動端開發越來越火,功能越來越強大,處理業務越來越複雜,因此對系統擴充套件性的要求越來越高。而為了更好地進行移動端架構設計,我們最常用的就是MVC和MVP,今天本篇部落格就和大家一起聊一聊這兩種框架設計。 MVC框架 MVC的定義

Android框架MVCMVPMVVM探究(圖解+案例+附原始碼)

1、介紹 MVC、MVP、MVVM這些模式是為了解決開發過程中的實際問題而提出來的,目前作為主流的幾種架構模式而被廣泛使用。本文程式碼 2、瞭解並區分MVC,MVP,MVVM 2.1 MVC MVC,(Model View Controller)

Android UI層的三種框架模式-MVCMVPMVVM

MVC MVC全名是Model View Controller,是模型(model)-檢視(view)-控制器(controller)的縮寫。 呼叫關係 資料關係 View 接受使用者互動請求View 將請求轉交給ControllerController 操

Android進階十八 MVCMVPMVVM架構總結

一、MVVM概述 MVVM是一種軟體開發架構,是Model-View-View Model的縮寫,在Android中要實現MVVM架構, 需要使用Databinding的框架,Databinding即資料繫結,是Google為了能在Android上實現MVV

Android App 的設計架構:MVCMVPMVVM 的分析

MVC框架模式一樣,Model模型處理資料程式碼不變在Android的App開發中,很多人經常會頭疼於App的架構如何設計: 我的App需要應用這些設計架構嗎? MVC,MVP等架構講的是什麼?區別是什麼? 本文就來帶你分析一下這幾個架構的特性,優缺點,以及App架構設計中

【框架篇】mvcmvpmvvm使用關系總結

mvc模型 details eset 網站架構 特性 自動 分享 規模 arch MVC MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯

MVCMVPMVVM模式對比總結(2)橫向構架模型

span del nec 處理請求 eth .cn pos 實現 通過 前言說明 在實戰項目及學習中來總結一下Android端項目構架 包括MVC、MVP、MVVM,主要針對移動Android端 該篇只描述橫向構架模型 目錄 1.構架基礎 2.橫向構架模型 3.縱向

淺談MVCMVPMVVM架構模式的區別和聯系

.html csdn 獲取 視圖 viewmodel url title tle htm 淺談MVC、MVP、MVVM架構模式的區別和聯系 學習了:http://www.cnblogs.com/guwei4037/p/5591183.html http://blog.csd

從Script到Code BlocksCode Behind到MVCMVPMVVM

主題 描述 傳輸 對象之間的關系 方法 動力 基本 com load() 剛過去的周五(3-14)例行地主持了技術會議,主題正好是《UI層的設計模式——從Script、Code Behind到MVC、MVP、MVVM》,是前一天晚上才定的,中午花了半小時準備了下就開講了。

MVCMVPMVVM之間的關系

mvp 工作 更多 lan mod 技術 https v-model 產生 介紹   寫這篇隨筆完全是為了加深自己的印象,畢竟寫比看能獲得得更多,另外本人對這三種模式的認識還是淺薄的,有待在以後的工作學習中有更深入的理解,因此不免會有誤解,這裏推薦大家閱讀廖雪峰關於MVV