国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

這篇具有很好參考價值的文章主要介紹了[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言:

一、MVC

1.1 MVC的基本結(jié)構(gòu)

1.2 MVC的工作流程

1.3 MVC的優(yōu)缺點(diǎn)

二、MVP

2.1 MVP的基本結(jié)構(gòu)

2.2 MVP的工作流程

2.3 MVP的優(yōu)缺點(diǎn)

三、MVVM

3.1 MVVM的基本結(jié)構(gòu)

3.2 MVVM的工作流程

3.3 MVVM的優(yōu)缺點(diǎn)


前言:

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

MVC:一個controller對應(yīng)多個view,model可以直接通過view。從大鍋燴時代進(jìn)化,引入了分層的概念,但是層與層之間耦合明顯,維護(hù)起來不容易。

MVP:一個Presenter對應(yīng)一個view,model不能通過view。在 MVC 基礎(chǔ)上進(jìn)一步解耦,視圖層和模型層完全隔離,交互只能通過Presenter層來進(jìn)行,問題是更新視圖需要Presenter手動來進(jìn)行;

MVVM:一個ViewModel可以對應(yīng)多個View,model不能通過view??蚣芤?span style="color:#fe2c24;">雙向綁定機(jī)制,幫助實(shí)現(xiàn)一些更新視圖層和模型層的工作,讓開發(fā)者可以更專注于業(yè)務(wù)邏輯,相比于之前的模式,可以使用更少的代碼量完成更復(fù)雜的交互;

MVC、MVP、MVVM 模式是我們經(jīng)常遇到的概念,都是應(yīng)用程序的框架。其中 MVVM 是最常用到的,在實(shí)際項(xiàng)目中往往沒有嚴(yán)格按照模式的定義來設(shè)計(jì)的系統(tǒng),開發(fā)中也不一定要糾結(jié)自己用的到底是哪個模式,合適的才是最好的。

(1) MVC和MVP的區(qū)別

  • MVC是允許Model和View進(jìn)行交互的,而MVP中很明顯,Model與View之間交互由Presenter完成;
  • MVC中V對應(yīng)的是布局文件,MVP中V對應(yīng)的是Activity;

(2) MVVM與MVP的區(qū)別

  • 它采用雙向綁定(data-binding):View的變動,自動反映在 ViewModel,反之亦然。這樣開發(fā)者就不用處理接收事件和View更新的工作,框架已經(jīng)幫你做好了。

一、MVC

1.1 MVC的基本結(jié)構(gòu)

MVC(Model-View-Controller)是桌面開發(fā)中常見的軟件架構(gòu)。

標(biāo)準(zhǔn)的MVC架構(gòu)圖如下:

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

MVC架構(gòu)圖:

Model(模型):外部數(shù)據(jù)庫接口

負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)管理和處理,包括增刪改查。

Model必須提供外部可以操作模型數(shù)據(jù)的接口,同時在數(shù)據(jù)發(fā)生變化后能夠通知外部。

View(視圖):外部操作界面接口

用戶界面。View需要感知Model的變化,數(shù)據(jù)變化時,更新用戶界面

Controller(控制器):內(nèi)部業(yè)務(wù)邏輯

業(yè)務(wù)邏輯層。Controller需要感知View的事件,調(diào)用Model提供的接口對數(shù)據(jù)進(jìn)行操作

1.2 MVC的工作流程

1、用戶對界面進(jìn)行操作,觸發(fā)View的相關(guān)事件;

2、View感知這些事件,通知Controller進(jìn)行處理;

3、Controller處理相關(guān)業(yè)務(wù),并通過Model的接口對業(yè)務(wù)數(shù)據(jù)進(jìn)行更新;

4、Model的業(yè)務(wù)數(shù)據(jù)改變觸發(fā)相應(yīng)事件,可以直接通知View業(yè)務(wù)數(shù)據(jù)已經(jīng)發(fā)生改變;

5、View捕獲到Model發(fā)出的數(shù)據(jù)改變事件,重新獲取數(shù)據(jù)并更新用戶界面。

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

1.3 MVC的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):復(fù)用性提升

  • 降低用戶界面業(yè)務(wù)邏輯之間的耦合性。大大降低了用戶界面和業(yè)務(wù)邏輯的耦合性,可以隔離模塊間的變化,有利于維護(hù)和擴(kuò)展。
  • 復(fù)用性高。多個視圖可以共享一個數(shù)據(jù)模型。
  • MVC可以將一個項(xiàng)目分為三個子項(xiàng)目(進(jìn)程或線程)分別進(jìn)行開發(fā)和管理,有利于軟件工程化,也可實(shí)現(xiàn)獨(dú)立部署。
  • 因?yàn)闃I(yè)務(wù)邏輯和界面的分離,為業(yè)務(wù)模塊的單元測試創(chuàng)造了條件。

缺點(diǎn):資源消耗更多

  • 不適合中小規(guī)模的軟件項(xiàng)目。MVC引入了更多概念,增加了項(xiàng)目結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性,將其應(yīng)用到中小規(guī)模項(xiàng)目通常得不償失。
  • 更多的內(nèi)存消耗。Model中的內(nèi)容都可以從界面獲取到,因此,Model的引入增加了內(nèi)存消耗。
  • 降低了程序性能。因?yàn)閷?shí)現(xiàn)的復(fù)雜性,勢必會導(dǎo)致性能降低。

二、MVP

2.1 MVP的基本結(jié)構(gòu)

MVP(Model-View-Presenter)是從MVC演變而來的。在MVC的基礎(chǔ)上,MVP強(qiáng)調(diào)Model與View之間的隔離,兩者互不感知。MVP的架構(gòu)圖如下:

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

MVP架構(gòu)圖

在MVP架構(gòu)中,P占據(jù)主導(dǎo)地位,充當(dāng)Model和View的橋梁,實(shí)現(xiàn)兩者之間的隔離。

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

2.2 MVP的工作流程

  1. 用戶對界面進(jìn)行操作,觸發(fā)View的相關(guān)事件;
  2. View感知這些事件,通知Presenter進(jìn)行處理;
  3. Presenter處理相關(guān)業(yè)務(wù),并通過Model的接口對業(yè)務(wù)數(shù)據(jù)進(jìn)行更新;
  4. Model數(shù)據(jù)變化會通知Presenter;
  5. Presenter收到Model數(shù)據(jù)變化通知后,調(diào)用View暴露的接口更新用戶界面。

2.3 MVP的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 視圖和模型完全分離,MVC常常會因?yàn)閂和M的耦合性太強(qiáng)而漸漸導(dǎo)致C失去控制作用。
  • 所有交互都在P中實(shí)現(xiàn),M的設(shè)計(jì)可以更加靈活,有利于M的高效使用。

缺點(diǎn):

  • P可能會很臃腫,難以維護(hù)。

三、MVVM

3.1 MVVM的基本結(jié)構(gòu)

MVVM(Model-View-ViewModel)也是MVC的演變而來。由微軟公司提出并在WPF上大量應(yīng)用。

MVVM強(qiáng)調(diào)數(shù)據(jù)綁定,從而省去了模型數(shù)據(jù)改變后通知數(shù)據(jù)更新的步驟。

MVVM的架構(gòu)圖如下:

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

MVVM架構(gòu)圖

Model:業(yè)務(wù)數(shù)據(jù)處理接口

View:用戶界面。用戶界面代碼編寫時,直接將M中的業(yè)務(wù)數(shù)據(jù)以聲明方式綁定到對應(yīng)的視圖組件上。

ViewModel:核心功能有2個:

  • 1)界面渲染完成后,將聲明綁定到View上的業(yè)務(wù)數(shù)據(jù)和View進(jìn)行雙向綁定,同步更新;
  • 2)相應(yīng)View的事件,操縱M實(shí)現(xiàn)業(yè)務(wù)處理。

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)

3.2 MVVM的工作流程

  1. 界面渲染完畢后,ViewModel會將View和Model按照開發(fā)時聲明的方式進(jìn)行雙向綁定;
  2. 用戶對界面進(jìn)行操作,觸發(fā)View的相關(guān)事件;
  3. ViewModel感知View發(fā)出的事件,調(diào)用Model的接口處理業(yè)務(wù)邏輯;
  4. Model內(nèi)容改變,用戶界面立即更新,無需額外操作。

3.3 MVVM的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 開發(fā)效率高,產(chǎn)品開發(fā)生命周期短。通過數(shù)據(jù)雙向綁定,不需要手動更新界面,實(shí)現(xiàn)了關(guān)注點(diǎn)分離,降低了開發(fā)的復(fù)雜性和工作量;
  • 雙向綁定可以通過感知模型數(shù)據(jù)的變化提前感知界面即將發(fā)生的變化,優(yōu)化該過程,可以提高界面的渲染速度,避免重復(fù)渲染。

缺點(diǎn):

  • 數(shù)據(jù)綁定會消耗額外資源,占用更多的內(nèi)存
  • 數(shù)據(jù)綁定會導(dǎo)致模型數(shù)據(jù)的變化變得難以追蹤

也有一些MVVM框架采用單向數(shù)據(jù)綁定+UI事件劫持的方式,這里簡單介紹下雙綁和單綁的區(qū)別:

  • 一般只有UI表單控件才存在雙向數(shù)據(jù)綁定,非UI表單控件只有單向數(shù)據(jù)綁定。
  • 單向數(shù)據(jù)綁定:M的變化可以自動更新到ViewModel,但ViewModel的變化需要手動更新到M(一般通過給表單控件設(shè)置事件監(jiān)聽實(shí)現(xiàn))
  • 雙向數(shù)據(jù)綁定:M的變化可以自動更新到ViewModel,ViewModel的變化也可以自動更新到M
  • 雙向綁定=單向綁定+UI事件監(jiān)聽,雙向和單向只不過是框架封裝程度上的差異,本質(zhì)上兩者是可以相互轉(zhuǎn)換的。

優(yōu)缺點(diǎn):

  • 單向數(shù)據(jù)綁定的優(yōu)點(diǎn)是數(shù)據(jù)更易于跟蹤管理和維護(hù),缺點(diǎn)是代碼量較多比較啰嗦。
  • 雙向數(shù)據(jù)綁定的優(yōu)點(diǎn)是代碼量少、簡潔,缺點(diǎn)是數(shù)據(jù)不易于跟蹤管理和維護(hù)。

[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)文章來源地址http://www.zghlxwxcb.cn/news/detail-442014.html

到了這里,關(guān)于[架構(gòu)之路-195]-《軟考-系統(tǒng)分析師》- MVC、MVP、MVVM架構(gòu)各自的優(yōu)缺點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [架構(gòu)之路-152]-《軟考-系統(tǒng)分析師》- 8-軟件工程-2-軟件工程的N維矩陣模型與軟件開發(fā)方法(形式化方法、逆 向 工 程)

    8.1? 軟件工程的矩陣模型 橫軸X(時間):是軟件的生命周期 :需求分析=》架構(gòu)設(shè)計(jì)=》編程實(shí)現(xiàn)=》測試=》版本發(fā)布=》部署運(yùn)行 縱軸Y1維度/視角:軟件開發(fā)活動, 不同什么周期階段,有不同的開發(fā)活動,包括需求規(guī)格、設(shè)計(jì)文檔、編碼、測試規(guī)范、測試用例等活動。 縱軸

    2024年02月05日
    瀏覽(232)
  • 【系統(tǒng)分析師之路】2022上論文寫作歷年真題

    2022上論文寫作歷年真題第一題(75分) 試題一 論原型法及其在信息系統(tǒng)開發(fā)中的應(yīng)用 作為一種信息系統(tǒng)開發(fā)方法,原型法( Prototyping )被普遍使用,原型法是指在獲取一組基本的需求定義后,利用可視化的開發(fā)工具,快速建立一個目標(biāo)系統(tǒng)的初始版本,并交由用戶試用,并

    2024年02月08日
    瀏覽(89)
  • 系統(tǒng)分析師:全程指導(dǎo)例題

    系統(tǒng)分析師:全程指導(dǎo)例題

    題解:這里假設(shè)能并行處理,畫流水線時空圖如下: 這里可以看到,處理4個數(shù)據(jù)需要15At,因此實(shí)際速率是4/15At,流水線效率為忙碌時間與總時間對比,也可以看成忙碌時空區(qū)/總時空區(qū),即6*4/15*4=2/5。選擇D和B。另外:加速比則是不啟用流水線和啟用流水線的時間比。 題解:

    2024年02月07日
    瀏覽(90)
  • 系統(tǒng)分析師知識點(diǎn)匯總

    目錄 1.計(jì)算機(jī)組成 1.1計(jì)算機(jī)組成與分類 1.1.1計(jì)算機(jī)的組成 1.2.1主存儲器(內(nèi)存) 1.2.2輔助存儲器(外存磁盤如硬盤) 1.2.3Cache緩存 1.3輸入輸出接口 1.3.1輸入輸出方式 1.3.2總線和接口 1.4各種體系結(jié)構(gòu) 1.4.2流水線技術(shù) 1.4.3并行處理 1.4.4互聯(lián)網(wǎng)絡(luò) 2.操作系統(tǒng) 2.1操作系統(tǒng)的類型與結(jié)

    2023年04月08日
    瀏覽(95)
  • 2022系統(tǒng)分析師案例分析真題背記內(nèi)容

    以下內(nèi)容僅為個人根據(jù)當(dāng)年系分案例真題問題整理的偏需要記背的考點(diǎn)答案,方便個人背誦和記憶使用。方便文字轉(zhuǎn)語音,所以內(nèi)容全為純文字內(nèi)容,以下內(nèi)容僅供參考。 1.數(shù)據(jù)流圖: 數(shù)據(jù)流圖的特點(diǎn):通過系統(tǒng)內(nèi)數(shù)據(jù)的流動來描述系統(tǒng)功能的-一種方法。強(qiáng)調(diào)系統(tǒng)中的數(shù)據(jù)流動

    2024年02月06日
    瀏覽(100)
  • 系統(tǒng)分析師:七、軟件工程(含系統(tǒng)規(guī)劃)

    系統(tǒng)分析師:七、軟件工程(含系統(tǒng)規(guī)劃)

    ? ? ? ? 軟件生命周期分為5個:獲取過程、供應(yīng)過程、開發(fā)過程、運(yùn)行過程、維護(hù)過程,具體如下: ? ? ? ? 該方法的思想是利用形式化語言,嚴(yán)格定義需求,并用數(shù)據(jù)推演的方法證明需求的性質(zhì)。形式化規(guī)格包含了嚴(yán)格的語法定義以及一系列數(shù)據(jù)推演規(guī)則。 ? ? ? ? 2.1

    2024年02月07日
    瀏覽(100)
  • 系統(tǒng)分析師之信息化技術(shù)(十一)

    系統(tǒng)分析師之信息化技術(shù)(十一)

    目錄 一、企業(yè)信息化概述 1.1 信息系統(tǒng)的基本概念 1.1.1 什么是信息 1.1.2 什么是信息化 1.1.3 信息系統(tǒng)分類 二、企業(yè)信息化規(guī)劃 2.1 信息化戰(zhàn)略體系 2.2 企業(yè)戰(zhàn)略與信息化戰(zhàn)略集成方法 三、信息系統(tǒng)開發(fā)方法 3.1 信息系統(tǒng)開發(fā)方法 3.2 系統(tǒng)建模 四、信息系統(tǒng)戰(zhàn)略規(guī)劃方法 五、電

    2023年04月26日
    瀏覽(91)
  • 系統(tǒng)分析師每日練習(xí)錯題知識點(diǎn)

    系統(tǒng)分析師每日練習(xí)錯題知識點(diǎn)

    計(jì)算機(jī)網(wǎng)絡(luò): RIP協(xié)議存在的一個問題就是當(dāng)網(wǎng)絡(luò)出現(xiàn)故障的時候,要經(jīng)過比較長的時間才能把信息傳送到所有的路由器。在這個中間過程中,實(shí)際就是路由環(huán)路的問題;當(dāng)發(fā)生路由環(huán)路的時候,路由表會頻繁的進(jìn)行變化,從而導(dǎo)致路由表中的一條或者幾條,都無法收斂,結(jié)果

    2024年02月09日
    瀏覽(97)
  • 系統(tǒng)分析師---論軟件開發(fā)模型及應(yīng)用

    論題:論軟件開發(fā)模型及應(yīng)用 軟件開發(fā)模型(Software Development Model)是指軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架。軟件開發(fā)過程包括需求、設(shè)計(jì)、編碼和測試等階段,有時也包括維護(hù)階段。軟件開發(fā)模型能清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定了要完成的主要任務(wù)

    2024年02月04日
    瀏覽(89)
  • 2023系統(tǒng)分析師---論軟件項(xiàng)目管理技術(shù)及應(yīng)用(內(nèi)部信息)

    試題:“論軟件項(xiàng)目管理”技術(shù)及其應(yīng)用。 軟件項(xiàng)目管理是為了使軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度和質(zhì)量順利完成,對人員、產(chǎn)品、過程和項(xiàng)目進(jìn)行分析和管理的活動。軟件項(xiàng)目管理的根本目的是為了讓軟件項(xiàng)目,尤其是大型軟件項(xiàng)目的整個生命周期都能在管理者的控制

    2024年02月06日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包