淺析mvvm模式和mvc模式的區別和聯系


三層架構與MVC模式

三層架構

三層架構是一種以實現“高內聚,底耦合”為目標,的代碼架構方法,它將整個業務分為,表示層,業務層,數據訪問層(Dao層)。
image

MVC模式

MVC模式是一種軟件設計的典范,一種組織代碼的方法。

M 是 model 模型
V 是 view 視圖
C 是 control 控制器

控制器是用來將不同的view和不同的model組織在一起。且mvc往往在三層架構中的表現層使用,如SpringMVC,Struct2等是優秀的用於表現層的mvc框架。MyBatis是常用於Dao層的框架。

區別

MVC是一種設計模式,是解決方案。三層架構是種軟件架構方法。

MVVM模式

MVVM模式也是一種軟件的架構模式,在它是(Model-View-ViewModel)的縮寫,其核心是VM,VM是視圖與模型之間的橋梁,它實現了視圖與模型的相互映射。
image
在MVVM中模型的改變會引起視圖的改變,視圖的改變會引發模型的改變。
image

與MVC的異同

  1. MVVM沒有MVC模式的控制器,也沒有MVP模式的presenter,有的是一個綁定器。在視圖模型中,綁定器在視圖和數據綁定器之間進行通信。
  2. MVVM模式不同於MVC,在MVVM模式中,將ViewModel層綁定到View層后,它基本不使用點擊事件,而是使用命令(Command)來控制。數據的顯示也是不同於MVC,而是使用Binding來綁定相關數據。

MVVM實例

如VUE中的數據的雙向綁定就是MVVM的一個應用:

<!-- 該dom下的div可以看作是view -->
<div id="example">{{message}}</div>

<script>
// data 可以看作是數據模型 model
// Vue對象vm就是ViewModel
var vm = new Vue({
  el: '#example',
  data: {message:'zhangsan'}
})
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM