文章目錄
- 前言
- 一、MVC
- 1.什么是MVC
- 2.MVC的特點
- 3.MVC的流程
- 3.MVC的優點
- 3.MVC的缺點
- 二、MVP
- 1.什么是MVP
- 1.MVP的特點
- 2.MVP的流程
- 3.MVP的優點
- 4.MVP的缺點
- 二、MVVM
- 1.什么是MVVM
- 2.MVVM的優點
- 3.MVVM的缺點
- 總結
前言
2021-4-17學習
提示:以下是本篇文章正文內容,下面案例可供參考
一、MVC
…
1.什么是MVC
MVC 模式(Model–view–controller)是軟體工程中的一種軟體架構模式,它把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller),
Model(資料模型):
資料層,負責處理業務邏輯,監聽網路或資料庫介面
View(視圖):
界面(UI)層,顯示來源于Model的資料
Controller(控制器):
邏輯層,傳遞用戶的互動和更新Model的資料在Android中,Activity/Fragment既有View的性質,也具有Controller的性質,導致Activity/Fragment很重,MVC中的View會與Model直接互動,所以Activity/Fragment與Model的耦合性很高
2.MVC的特點
1.MVC主要實作關注點分離,即應用程式中的資料模型與展示邏輯解耦.在客戶端web開發中.就是將模型(M-資料,操作資料),視圖(V-顯示資料的HTML元素)之間實作代碼的分離,松散耦合,使之成為一個更容易開發,維護和測驗的客戶端應用程式
2.MVC的所有通信都是單向的
3.view傳送指令到Controller(用戶也可以直接將指令傳到Controller)
4.Controller完成業務邏輯后要求Model改變狀態
5.Model將新的資料發送到View,用戶得到反饋
3.MVC的流程
MVC流程分為兩種:
一種是通過View接收指令,傳遞給Controller,然后對模型進行修改或者查找底層資料,最后把改動渲染在視圖上

另一種是通過Controller接受指令,傳給Controller

3.MVC的優點
1.耦合性低,視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼
2.重用性高
3.生命周期成本低
4.MVC使開發和維護用戶介面的技術含量降低
5.可維護性高,分離視圖層和業務邏輯層也使得WEB應用更易于維護和修改
6.部署快
3.MVC的缺點
1.不適合小型,中等規模的應用程式,花費大量時間將MVC應用到規模并不是很大的應用程式通常會得不償失,
2.視圖與控制器間過于緊密連接,視圖與控制器是相互分離,但卻是聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用,
3.視圖對模型資料的低效率訪問,依據模型操作介面的不同,視圖可能需要多次呼叫才能獲得足夠的顯示資料,對未變化資料的不必要的頻繁訪問,也將損害操作性能,
二、MVP
…
1.什么是MVP
MVP 全稱:Model-View-Presenter ;MVP 是從經典的模式 MVC 演變而來,它們的基本思想有相通的地方:
Controller/Presenter 負責邏輯的處理,Model 提供資料,View 負責顯示,
Model(資料模型):
業務邏輯和物體模型,用來操作實際的資料,包含Bean和Model的抽象介面來降低耦合,
View(視圖):
就是Android中的視圖,需要建立一個View的抽象介面View Interface,通過實作View的介面來實作View與Presenter的互動,從而降低耦合,對應于Activity,負責View的繪制與用戶互動;
Presenter:
View和Model的中間樞紐,處理和用戶互動的邏輯,
1.MVP的特點
1.將MVC中的Controller變為Presenter,同時改變了通信方向,View與MOdel隔離,Presenter負責完成View層與Model層的互動
2.各個部分之間的通信都是雙向的
3.View與Model不發生聯系,都通過Presenter傳遞
4.View非常薄,不部署任何業務邏輯,稱為"被動視圖",即沒有任何主動性,而Presenter非常厚,所有邏輯都部署在這里
2.MVP的流程

3.MVP的優點
1.模型與視圖完全分離,我們可以修改視圖而不影響模型;
2.可以更高效地使用模型,因為所有的互動都發生在一個地方——Presenter內部;
3.我們可以將一個Presenter用于多個視圖,而不需要改變Presenter的邏輯,這個特性非常的有用,因為視圖的變化總是比模型的變化頻繁;
4.MVP的缺點
視圖和Presenter的互動會過于頻繁,使得他們的聯系過于緊密,也就是說,一旦視圖變更了,presenter也要變更
二、MVVM
…
1.什么是MVVM
回應式,雙向資料系結,即MVVM,是指資料層(Model)-視圖層(View)-資料視圖(ViewModel)的回應式框架,它本質上是MVC 的改進版
M-Model:資料提供,Model在程式中專門用于提供資料,不管是網路請求獲得的資料,還是資料庫獲得的資料,統統寫在Model里,Model層獨立性相當強,它只用來提供資料,而不管資料是用來做什么的,
V-View:視圖元素和視圖元素初始化,View在Android中指代的就是我們常見的布局檔案和Activity中的元素初始化部分,總之,所有一切我們在Android上肉眼能看見的東西都是View,在View層里,我只對UI做初始化,比如將TextView設定字體大小,為Banner控制元件設定滾動速度等等,這些大多可以直接在布局檔案中完成,
ViewModel:操作業務資料,并將資料呈現在View上,
2.MVVM的優點
MVVM會讓你的程式完全解耦
可重用性:你可以把一些視圖邏輯放在一個ViewModel里面,讓很多view重用這段視圖邏輯
獨立開發:開發人員可以專注于業務邏輯和資料的開發(ViewModel),設計人員可以專注于頁面設計,使用Expression Blend可以很容易設計界面并生成xml代碼
可測驗:界面素來是比較難于測驗的,而現在測驗可以針對ViewModel來寫
3.MVVM的缺點
MVVM不會提升程式的性能,甚至用不好還會降低程式的性能
MVVM會增大代碼的總量
總結
以上就是今天我學習的內容,我只是大致了解了MVC,MVP和MVVM之間的區別,以及優缺點.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/277826.html
標籤:其他
