日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MVC、MVP、MVVM分别是什么?有什么区别?

發(fā)布時間:2024/2/28 c/c++ 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC、MVP、MVVM分别是什么?有什么区别? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MVC框架最早出現(xiàn)在Java領域,然后慢慢在前端開發(fā)中也被提到,后來又出現(xiàn)了MVP,以及現(xiàn)在最成熟的MVVM,下面我們來簡單介紹一下各種模式。

MVC

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。

  • Model(模型)是應用程序中用于處理應用程序數(shù)據(jù)邏輯的部分。
  • View(視圖)是應用程序中處理數(shù)據(jù)顯示的部分。
  • Controller(控制器)是應用程序中處理用戶交互的部分。

通常控制器負責從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。
優(yōu)點: 耦合性低、重用性高、生命周期成本低、部署快、可維護性高、有利軟件工程化管理
缺點: 由于模型和視圖要嚴格的分離,這樣也給調試應用程序帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。
對于小項目,MVC反而會帶來更大的工作量以及復雜性。
接受用戶指令時,MVC 可以分成兩種方式。一種是通過 View 接受指令,傳遞給 Controller。

另一種是直接通過controller接受指令。

MVP

MVP是單詞Model View Presenter的首字母的縮寫,分別表示數(shù)據(jù)層、視圖層、發(fā)布層,它是MVC架構的一種演變。作為一種新的模式,MVP與MVC有著一個重大的區(qū)別:在MVP中View并不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發(fā)生在Presenter內部,而在MVC中View會直接從Model中讀取數(shù)據(jù)而不是通過 Controller。
MVP 模式將 Controller 改名為 Presenter,同時改變了通信方向。

  • 各部分之間的通信,都是雙向的。
  • View 與 Model 不發(fā)生聯(lián)系,都通過 Presenter 傳遞。
  • View 非常薄,不部署任何業(yè)務邏輯,稱為"被動視圖"(Passive View),即沒有任何主動性,而 Presenter非常厚,所有邏輯都部署在那里。

MVVM

MVVM(Model View ViewModel)是一種基于MVC的設計,開發(fā)人員在HTML上寫一些Bindings,利用一些指令綁定,就能在Model和ViewModel保持不變的情況下,很方便的將UI設計與業(yè)務邏輯分離,從而大大的減少繁瑣的DOM操作。
相比前面兩種模式,MVVM 模式只是把MVC的Controller和MVP的Presenter 改名為 ViewModel,它采用雙向綁定(data-binding):View的變化會自動更新到ViewModel,ViewModel的變化也會自動同步到View上顯示。MVVM代表框架有:Knockout、Ember.js、AngularJS、Vue.js。

Model

作為MV*家族中的一員,MVVM中的M代表著Model。Model代表我們整個webapp所需要的數(shù)據(jù)模型,一個典型的例子就是用戶信息Model,它應該含有(姓名,年齡等屬性)。Model含有大量信息,但它并不具有任何行為邏輯,它只是數(shù)據(jù),因而它不會影響瀏覽器如何展示數(shù)據(jù)。

View

View這個詞出現(xiàn)頻率最多的地方應該是MVC。在MVC設計中,View是唯一與用戶交互的地方,或者說它是Model變化后的直觀反映。在MVVM中,View被認為是主動的而非被動的。一個被動的View時只它只能任由“他人”(Controller)擺布,自己卻不能改變任何東西,如利用jQuery操作DOM。而MVVM中View是具有主動性的,因為它包括了一些數(shù)據(jù)綁定,事件,和行為,這些都會直接影響Model和ViewModel的。它不但負責保持View自身的行為(展示),而還會將自身的變化同步到ViewModel中。

ViewModel

ViewModel可以被看作是MVC中的Controller,它主要負責數(shù)轉換(用一定的業(yè)務邏輯),它負責將Model的變化反應到View上,而當View自身有變化時也會同步Model進行改變。你可以把ViewModel看作一個藏在View后面的好幫手,它把View需要的數(shù)據(jù)暴露給它,并且富于View一定的行為能力。

!

?

?

轉自:https://www.kancloud.cn/dataoedu/vue/289126

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的MVC、MVP、MVVM分别是什么?有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97看片网 | 日本人妖xxxx | 日韩免费观看视频 | 欧洲色播 | 黄网站免费大全入口 | 在哪里可以看毛片 | 91精品啪在线观看国产线免费 | 两根大肉大捧一进一出好爽视频 | 国产簧片| 综合激情av | 欧美日韩免费一区 | 一区二区午夜 | 好吊日av| 91午夜视频在线观看 | 亚洲无人区小视频 | 亚洲乱码国产乱码精品精剪 | 精品福利在线 | 国产女人18毛片18精品 | 国产精品免费一区二区三区在线观看 | 99在线观看精品视频 | 亚洲成人免费在线视频 | 国产激情无套内精对白视频 | 人人看人人看 | 日韩精品av一区二区三区 | 羞羞网站在线观看 | 中文字幕无码日韩专区免费 | 影音先锋国产精品 | 日韩一级片av | av在线入口| 东北女人啪啪ⅹxx对白 | 嫩草视频在线免费观看 | www.在线国产| 91免费毛片 | 亚洲成人a v | av手机天堂网 | 免费日b视频 | 一级淫片免费看 | 久久精品国产久精国产 | 99久久毛片 | 欧美亚洲在线视频 | 一级黄色免费观看 | 毛茸茸free性熟hd | 性做久久 | 午夜操一操 | 玖玖五月| 色悠悠国产精品 | 日本中文字幕视频 | 巨胸喷奶水www久久久免费动漫 | 亚洲一级网 | 精品一区不卡 | 亚洲成av人片 | 人人爽爽人人 | 成人v精品蜜桃久一区 | 9999热视频| 中文字幕在线官网 | 污片网址 | 91打屁股| 啪啪福利| 一本色道久久88加勒比—综合 | 九七av| 2022av在线 | 久久久香蕉 | 午夜剧场91 | 亚洲av无码精品色午夜 | 欧美性一区二区三区 | 国产做受网站 | 久久久无码一区二区三区 | www夜片内射视频日韩精品成人 | 免费成人深夜小野草 | 中文字幕一区二区三区精彩视频 | 波多野结衣一区二区 | 亚洲桃色av | 又白又嫩毛又多15p 超碰在线一区 | 蜜臀av性久久久久蜜臀av麻豆 | 秋霞毛片少妇激情免费 | 中国第一毛片 | 亚洲视频中文字幕在线观看 | 丰满尤物白嫩啪啪少妇 | 成人在线一区二区 | 深夜免费福利 | 国产一区二区三区黄片 | 一本到高清 | 亚洲在线视频观看 | 国产视频一二三区 | 特级做a爰片毛片免费69 | 亚洲免费国产 | 国产三级理论片 | 善良的公与媳hd中文字 | 欧美性受xxxx黒人xyx性爽 | 国内精品久久久久久久久久久 | 又黄又爽一区二区三区 | 专业操老外 | 九九热精品视频 | 一级伦理农村妇女愉情 | 欧美日韩一区二区三区在线观看 | www.超碰97.com| 双腿张开被9个男人调教 | 欧美性猛交xxxx | 大尺度床戏视频 |