- N +

mvc和mvvm的區(qū)別?mvvm實現(xiàn)原理

很多朋友對于mvc和mvvm的區(qū)別和mvvm實現(xiàn)原理不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!

MVC與MVVM區(qū)別

MVVM是MVC的增強版,和MVC沒有本質(zhì)區(qū)別,只是代碼的位置變動而已

MVC模式

MVC即Model-View-Controller(模型-視圖-控制器)

Model:應(yīng)用程序中處理數(shù)據(jù)邏輯的一部分,通常用來模型對象對數(shù)據(jù)庫的存取等操作

View:視圖部分,通常指前端頁面用來對用戶展示的一部分

Controller:控制層通常用來處理業(yè)務(wù)邏輯,負責從視圖讀取數(shù)據(jù),并向模型發(fā)送數(shù)據(jù)

MVVM模式

MVVM即Model-View-ViewModel

可以將ViewMode看作是Model和View的連接橋,View可以通過事件綁定Model,Model可以通過數(shù)據(jù)綁定View,通過ViewMode可以實現(xiàn)數(shù)據(jù)和視圖的完全分離

MVVM的優(yōu)點

1.雙向綁定技術(shù),當Model變化時,View-Model會自動更新,View也會自動變化,能很好的做到數(shù)據(jù)一致性。

2.View的功能進一步的強化,具有控制的部分功能。

3.UI和邏輯的開發(fā)解耦。

MVVM的缺點

1.數(shù)據(jù)綁定使得Bug不易調(diào)試,也會使得一個位置的Bug被快速傳遞到別的位置。

2.雖然使用Model方便了保證數(shù)據(jù)一致性,但是大的模塊中長期不釋放內(nèi)存就會造成花費更多的內(nèi)存。

3.數(shù)據(jù)雙向綁定不利于View部分的代碼復(fù)用

安卓mvvm框架的原理

原理如下

安卓MVVM的框架下視圖和模型是不能直接通信的。它們通過ViewModel來通信,ViewModel通常要實現(xiàn)一個observer觀察者,當數(shù)據(jù)發(fā)生變化,ViewModel能夠監(jiān)聽到數(shù)據(jù)的這種變化,然后通知到對應(yīng)的視圖做自動更新,而當用戶操作視圖,ViewModel也能監(jiān)聽到視圖的變化,然后通知數(shù)據(jù)做改動,這實際上就實現(xiàn)了數(shù)據(jù)的雙向綁定。并且MVVM中的View和ViewModel可以互相通信。

MVC和MVVM的區(qū)別并不是VM完全取代了C,ViewModel存在目的在于抽離Controller中展示的業(yè)務(wù)邏輯,而不是替代Controller,其它視圖操作業(yè)務(wù)等還是應(yīng)該放在Controller中實現(xiàn)。也就是說MVVM實現(xiàn)的是業(yè)務(wù)邏輯組件的重用。

mvvn模型的基本原理

MVVM是Model-View-ViewModel的簡寫。視圖模型mvvm模式的核心,它是連接view和model的橋梁。模型指的是后端傳遞的數(shù)據(jù)。視圖指的是所看到的頁面。

它有兩個方向:

一是將【模型】轉(zhuǎn)化成【視圖】,即將后端傳遞的數(shù)據(jù)轉(zhuǎn)化成所看到的頁面。實現(xiàn)的方式是:數(shù)據(jù)綁定。

二是將【視圖】轉(zhuǎn)化成【模型】,即將所看到的頁面轉(zhuǎn)化成后端的數(shù)據(jù)。實現(xiàn)的方式是:DOM事件監(jiān)聽。

這兩個方向都實現(xiàn)的,我們稱之為數(shù)據(jù)的雙向綁定。

MVVM的框架下視圖和模型是不能直接通信的。它們通過ViewModel來通信,ViewModel通常要實現(xiàn)一個observer觀察者,當數(shù)據(jù)發(fā)生變化,ViewModel能夠監(jiān)聽到數(shù)據(jù)的這種變化,然后通知到對應(yīng)的視圖做自動更新,而當用戶操作視圖,ViewModel也能監(jiān)聽到視圖的變化,然后通知數(shù)據(jù)做改動,這實際上就實現(xiàn)了數(shù)據(jù)的雙向綁定。并且MVVM中的View和ViewModel可以互相通信。

MVC和MVVM的區(qū)別并不是VM完全取代了C,ViewModel存在目的在于抽離Controller中展示的業(yè)務(wù)邏輯,而不是替代Controller,其它視圖操作業(yè)務(wù)等還是應(yīng)該放在Controller中實現(xiàn)。也就是說MVVM實現(xiàn)的是業(yè)務(wù)邏輯組件的重用。

由于mvc出現(xiàn)的時間比較早,前端并不那么成熟,很多業(yè)務(wù)邏輯也是在后端實現(xiàn),所以前端并沒有真正意義上的MVC模式。而我們今天再次提起MVC,是因為大前端的來到,出現(xiàn)了MVVM模式的框架,我們需要了解一下MVVM這種設(shè)計模式是如何一步步演變過來的。

mvvm框架是什么

MVVM(ModelViewViewModel)是基于MVC(ModelViewController)和MVP(ModelViewPresenter)發(fā)展起來的一種新的軟件設(shè)計框架,并且其包含有WPF的特性。

在iOS應(yīng)用開發(fā)中,常用的框架設(shè)計模式為MVC模式,控制器負責協(xié)調(diào)數(shù)據(jù)模型與視圖之間的交互,除此之外,控制器還需要處理如場景轉(zhuǎn)換、內(nèi)存警告、鍵盤彈出等系統(tǒng)事件以及其他用戶自定義的事件,所有的這些都放在控制器中,如UITableview的代理通常是控制器,而其中的UITableviewCell一般也設(shè)置控制器作為其代理,這些都造成了控制器中的代碼臃腫,不利于程序的維護和擴展

asp、net、mvc,、mvvm有什么本質(zhì)區(qū)別嗎

首先明確一點,這幾個概念是不同的,本質(zhì)上也存在較大差異。

.NET不是一種編程語言,而是一個框架

我們?nèi)粘Kf的.NET其實是指.NETFramework,是微軟推出的一款操作平臺(于2002年誕生),它支持很多種編程語言(多數(shù)都是微軟開發(fā)的),比如說有:C#、VB、F#、C++等。.NET框架是支持跨語言互操作的,即:比如用VB寫的DLL,在C#中可以引用。

ASP是微軟早期的一種動態(tài)網(wǎng)頁腳本環(huán)境

ASP全稱是ActiveServerPages,是由微軟開發(fā)的一種服務(wù)器端腳本(主要使用VBScript、JScript),主要用來開發(fā)動態(tài)網(wǎng)頁的。它在.NET框架之前誕生,早在10年前就已被淘汰了,自.NET面世后,ASP有了一個升級版:ASP.NET。

MVC、MVVM都是一種設(shè)計模式

MVC和MVVM都是用來解決界面呈現(xiàn)和代碼邏輯分離的一種設(shè)計模式,通俗說就是為了解決代碼層和視圖層的耦合的。

MVC即:Model-View-Controller(模型-視圖-控制器),其中M是指業(yè)務(wù)模型、V是指界面顯示層、C是控制器。MVC目的是將M層和V層分離,在此模式下可實現(xiàn)同一個程序使用不同的表現(xiàn)形式。

MVVM即:Model-View-ViewModel,可以理解為是MVC的升級版,它干的事和MVC一樣,用來將M層和V層分離。

以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流~我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗,歡迎關(guān)注我了解更多科技知識!

文章分享結(jié)束,mvc和mvvm的區(qū)別和mvvm實現(xiàn)原理的答案你都知道了嗎?歡迎再次光臨本站哦!

返回列表
上一篇:
下一篇: