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

Android面試題:MVC、MVP、MVVM

這篇具有很好參考價(jià)值的文章主要介紹了Android面試題:MVC、MVP、MVVM。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

MVC模式:

MVC結(jié)構(gòu):

1.MVC(Model-View-Controller)
2.Model:對(duì)數(shù)據(jù)庫(kù)的操作、對(duì)網(wǎng)絡(luò)等的操作都應(yīng)該在Model里面處理,當(dāng)然對(duì)業(yè)務(wù)計(jì)算,變更等操作也是必須放在的該層的。
3.View:主要包括一下View及ViewGroup控件,可以是系統(tǒng)控件也可以是自定義控件。4.Controller:Android的控制層通常在Activity、Fragment之中。從Model層獲取數(shù)據(jù),將獲取到的數(shù)據(jù)綁定到view上,并且還需要監(jiān)聽用戶的輸入等操作。
本質(zhì)就是Controller操作Model層的數(shù)據(jù),并且將數(shù)據(jù)返回給View層展示。

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

1.分工明確,各司所職。
2.一定程度上降低了代碼間的耦合性。

MVC的缺點(diǎn):

1.隨著界面及其邏輯的復(fù)雜度不斷提升,Activity類的職責(zé)不斷增加,以致變得龐大臃腫。
2,視圖和控制器間過(guò)于緊密的聯(lián)系,妨礙了各自的重用。

MVP模式:

MVP結(jié)構(gòu):

1.MVP(Model-View-Presenter)
2.Model:主要提供數(shù)據(jù)的存儲(chǔ)功能。Presenter需要通過(guò)Model存取數(shù)據(jù)。
3.View: 負(fù)責(zé)處理點(diǎn)擊事件和視圖展示(Activity、Fragment或者某個(gè)View控件)
4.Presenter: View和Model之間的橋梁,從Model檢索數(shù)據(jù)后返回給View層。使得M/V之間不再有耦合關(guān)系。

MVP和MVC的區(qū)別

1.MVP中絕對(duì)不允許View直接訪問(wèn)Model
2.本質(zhì)是增加了一個(gè)接口降低一層耦合度

MVP的特點(diǎn)

1.Presenter完全將Model和View解耦,主要邏輯處于Presenter中。
2.Presenter和具體View沒(méi)有直接關(guān)聯(lián),通過(guò)定義好的接口進(jìn)行交互。
3.View變更時(shí),可以保持Presenter不變(符合面向?qū)ο缶幊痰奶攸c(diǎn))
4.View只應(yīng)該有簡(jiǎn)單的Set/Get方法、用戶輸入、界面展示的內(nèi)容,此外沒(méi)有更多內(nèi)容。
5.低耦合:Model和View的解耦,決定了該特性。

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

1.低耦合:Model、View層的變換不會(huì)影響到對(duì)方。
2.可重用性:Model層可以用于多個(gè)View。比如請(qǐng)求影視數(shù)據(jù),可能有多個(gè)頁(yè)面都需要這個(gè)功能,但是Model層代碼只要有一份就可以了。
3.方便測(cè)試:可以單獨(dú)對(duì)Model層和View層進(jìn)行測(cè)試。

MVP的缺點(diǎn)

1.MVP的中使用了接口的方式去連接view層和presenter層,如果有一個(gè)邏輯很復(fù)雜的頁(yè)面,接口會(huì)有很多,導(dǎo)致維護(hù)接口的成本非常大。
解決辦法:盡可能將一些通用的接口作為基類,其他的接口去繼承。

MVVM模式:

MVVM結(jié)構(gòu):

1.MVVM(Model-View-ViewModel),將Presenter替換為ViewModel。
2.View層就是展示數(shù)據(jù)的,以及接收到用戶的操作傳遞給viewModel層,通過(guò)dataBinding實(shí)現(xiàn)數(shù)據(jù)與view的單向綁定或雙向綁定
3.Model層最重要的作用就是獲取數(shù)據(jù)了,當(dāng)然不止于此,model層將結(jié)果通過(guò)接口的形式傳遞給viewModel層
4.ViewModel 層通過(guò)調(diào)用model層獲取數(shù)據(jù),以及業(yè)務(wù)邏輯的處理。 MVVM中 viewModel 和MVP中的presenter 的作用類似 ,只不過(guò)是通過(guò) databinding 將數(shù)據(jù)與ui進(jìn)行了綁定。

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

1.雙向綁定技術(shù),當(dāng)Model變化時(shí),View-Model會(huì)自動(dòng)更新,View也會(huì)自動(dòng)變化。很好做到數(shù)據(jù)的一致性,不用擔(dān)心,在模塊的這一塊數(shù)據(jù)是這個(gè)值,在另一塊就是另一個(gè)值了。所以 MVVM模式有些時(shí)候又被稱作:model-view-binder模式。
2.View的功能進(jìn)一步的強(qiáng)化,具有控制的部分功能,若想無(wú)限增強(qiáng)它的功能,甚至控制器的全部功幾乎都可以遷移到各個(gè)View上(不過(guò)這樣不可取,那樣View干了不屬于它職責(zé)范圍的事情)。View可以像控制器一樣具有自己的View-Model.
3.由于控制器的功能大都移動(dòng)到View上處理,大大的對(duì)控制器進(jìn)行了瘦身。不用再為看到龐大的控制器邏輯而發(fā)愁了。

MVVM的缺點(diǎn)

1.數(shù)據(jù)綁定使得 Bug 很難被調(diào)試。你看到界面異常了,有可能是你 View 的代碼有 Bug,也可能是 Model 的代碼有問(wèn)題。數(shù)據(jù)綁定使得一個(gè)位置的 Bug 被快速傳遞到別的位置,要定位原始出問(wèn)題的地方就變得不那么容易了。
2.一個(gè)大的模塊中,model也會(huì)很大,雖然使用方便了也很容易保證了數(shù)據(jù)的一致性,當(dāng)時(shí)長(zhǎng)期持有,不釋放內(nèi)存,就造成了花費(fèi)更多的內(nèi)存
3.數(shù)據(jù)雙向綁定不利于代碼重用??蛻舳碎_發(fā)最常用的重用是View,但是數(shù)據(jù)雙向綁定技術(shù),讓你在一個(gè)View都綁定了一個(gè)model,不同模塊的model都不同。那就不能簡(jiǎn)單重用View了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-671784.html

到了這里,關(guān)于Android面試題:MVC、MVP、MVVM的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【軟件架構(gòu)模式——MVC、MVP、MVVM】

    1. MVC(Model-View-Controller) 概念介紹: MVC是一種軟件架構(gòu)模式,用于組織應(yīng)用程序的代碼和邏輯。它將應(yīng)用程序分為三個(gè)核心部分:模型(Model)、視圖(View)和控制器(Controller)。 **模型(Model)**負(fù)責(zé)處理應(yīng)用程序的數(shù)據(jù)邏輯和狀態(tài)。它表示應(yīng)用程序的數(shù)據(jù)源,并封裝了與

    2024年02月11日
    瀏覽(87)
  • MVC,MVP,MVVM的理解和區(qū)別

    MVC,MVP,MVVM的理解和區(qū)別

    MVC MVC ,早期的開發(fā)架構(gòu),在安卓里,用res代表V,activity代表Controller層,Model層完成數(shù)據(jù)請(qǐng)求,更新操作,activity完成view的綁定,以及業(yè)務(wù)邏輯的編寫,更新view,這種模式是單向的,雖然代碼存在分層,但是之間的耦合性還是很高,并且C層做的事情很多,久而久之會(huì)變得臃腫

    2024年02月10日
    瀏覽(25)
  • 淺談下mvc和mvp、mvvm到mvvm+Jetpack

    淺談下mvc和mvp、mvvm到mvvm+Jetpack

    作者:抓不住老鼠的貓 MVC MVC全名為Model-View-Controller,圖解如下 View:負(fù)責(zé)與用戶交匯,顯示界面。 Controller:負(fù)責(zé)接收來(lái)自view的請(qǐng)求,處理業(yè)務(wù)邏輯。 Model:負(fù)責(zé)數(shù)據(jù)邏輯,網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)以及本地?cái)?shù)據(jù)庫(kù)操作數(shù)據(jù)等。 在MVC架構(gòu)中,Controller是業(yè)務(wù)的主要承載者,幾乎所有的業(yè)

    2024年02月16日
    瀏覽(26)
  • 什么是MVVM?MVC、MVP與MVVM模式的區(qū)別?

    MVVM(Model-View-ViewModel)是一種軟件架構(gòu)模式,用于將用戶界面(View)與業(yè)務(wù)邏輯(Model)分離,并通過(guò)ViewModel來(lái)連接兩者。MVVM的目標(biāo)是實(shí)現(xiàn)可測(cè)試性、可維護(hù)性和可復(fù)用性。 MVC(Model-View-Controller)是另一種常見(jiàn)的軟件架構(gòu)模式,它將應(yīng)用程序分為三個(gè)主要部分:模型(Mode

    2024年02月20日
    瀏覽(22)
  • 什么是 MVVM?MVVM和 MVC 有什么區(qū)別?什么又是 MVP ?

    什么是 MVVM?MVVM和 MVC 有什么區(qū)別?什么又是 MVP ?

    MVVM是 Model-View-ViewModel的縮寫,即模型-視圖-視圖模型。MVVM 是一種設(shè)計(jì)思想。 模型(Model):代表數(shù)據(jù)模型,也可以在Model中定義數(shù)據(jù)修改和操作的業(yè)務(wù)邏輯。數(shù)據(jù)保存—存放著各種數(shù)據(jù),有的是固定寫死的,大多數(shù)是從后端返回的數(shù)據(jù) 視圖 (View):代表UI 組件,它負(fù)責(zé)將數(shù)

    2023年04月24日
    瀏覽(30)
  • 編程框架概述:MVC, MVP, MVVM, Flux/Redux, 和 Clean Architecture

    ? ? ? ? 在軟件開發(fā)中,選擇合適的編程框架和架構(gòu)模式對(duì)于構(gòu)建可維護(hù)和可擴(kuò)展的應(yīng)用程序至關(guān)重要。初學(xué)者在面對(duì)多種架構(gòu)選項(xiàng)時(shí)可能會(huì)感到困惑。本文將詳細(xì)介紹五種流行的編程框架:MVC、MVP、MVVM、Flux/Redux和Clean Architecture。 MVC是一種將應(yīng)用程序分為三個(gè)核心組件的架

    2024年01月20日
    瀏覽(24)
  • MVC、MVP、MVVM的成本角度結(jié)合業(yè)務(wù),如何考慮選型?一文了解方方面面

    MVC、MVP、MVVM的成本角度結(jié)合業(yè)務(wù),如何考慮選型?一文了解方方面面

    大家都知道,使用架構(gòu)的目的是使程序模塊化,做到模塊內(nèi)部的高聚合和模塊之間的低耦合,使得程序在開發(fā)的過(guò)程中,開發(fā)人員只需要專注于一點(diǎn),提高程序開發(fā)的效率。那么MVC、MVP、MVVM,該怎么選?在什么最省去開發(fā)時(shí)間和業(yè)務(wù)成本? 本篇來(lái)徹底理解MVC、MVP、MVVM這三個(gè)

    2024年02月10日
    瀏覽(20)
  • [架構(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 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) MVC: 一個(gè)controller對(duì)應(yīng)多個(gè)view,model可以直接通過(guò)view。從大鍋燴時(shí)代進(jìn)化,引入了分層

    2024年02月04日
    瀏覽(104)
  • 【前端面試常問(wèn)】MVC與MVVM

    前端開發(fā)世界中,架構(gòu)設(shè)計(jì)猶如高樓之基,決定著代碼的組織層次、模塊間交互方式以及項(xiàng)目長(zhǎng)遠(yuǎn)的可維護(hù)性和擴(kuò)展性。本文將全方位剖析兩種主流前端架構(gòu)模式——MVC(Model-View-Controller)與MVVM(Model-View-ViewModel),輔以實(shí)例助你透徹理解其核心理念與實(shí)戰(zhàn)技法。 面對(duì)面試官

    2024年04月25日
    瀏覽(20)
  • MVC 和 MVVM的區(qū)別

    M(model數(shù)據(jù))、V(view視圖),C(controlle控制器) 缺點(diǎn)是前后端無(wú)法獨(dú)立開發(fā),必須等后端接口做好了才可以往下走; 前端沒(méi)有自己的數(shù)據(jù)中心,太過(guò)依賴后臺(tái) M(model數(shù)據(jù))、V(view視圖)、VM(viewModel控制數(shù)據(jù)的改變和控制視圖) html部分相當(dāng)于View層,可以看到這里的Vi

    2024年01月25日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包