Android面试题:MVC、MVP、MVVM

这篇具有很好参考价值的文章主要介绍了Android面试题:MVC、MVP、MVVM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MVC模式:

MVC结构:

1.MVC(Model-View-Controller)
2.Model:对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算,变更等操作也是必须放在的该层的。
3.View:主要包括一下View及ViewGroup控件,可以是系统控件也可以是自定义控件。4.Controller:Android的控制层通常在Activity、Fragment之中。从Model层获取数据,将获取到的数据绑定到view上,并且还需要监听用户的输入等操作。
本质就是Controller操作Model层的数据,并且将数据返回给View层展示。

MVC的优点:

1.分工明确,各司所职。
2.一定程度上降低了代码间的耦合性。

MVC的缺点:

1.随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿
2,视图和控制器间过于紧密的联系,妨碍了各自的重用

MVP模式:

MVP结构:

1.MVP(Model-View-Presenter)
2.Model:主要提供数据的存储功能。Presenter需要通过Model存取数据。
3.View: 负责处理点击事件和视图展示(Activity、Fragment或者某个View控件)
4.Presenter: View和Model之间的桥梁,从Model检索数据后返回给View层。使得M/V之间不再有耦合关系。

MVP和MVC的区别

1.MVP中绝对不允许View直接访问Model
2.本质是增加了一个接口降低一层耦合度

MVP的特点

1.Presenter完全将Model和View解耦,主要逻辑处于Presenter中。
2.Presenter和具体View没有直接关联,通过定义好的接口进行交互。
3.View变更时,可以保持Presenter不变(符合面向对象编程的特点)
4.View只应该有简单的Set/Get方法、用户输入、界面展示的内容,此外没有更多内容。
5.低耦合:Model和View的解耦,决定了该特性。

MVP的优点

1.低耦合:Model、View层的变换不会影响到对方。
2.可重用性:Model层可以用于多个View。比如请求影视数据,可能有多个页面都需要这个功能,但是Model层代码只要有一份就可以了。
3.方便测试:可以单独对Model层和View层进行测试。

MVP的缺点

1.MVP的中使用了接口的方式去连接view层和presenter层,如果有一个逻辑很复杂的页面,接口会有很多,导致维护接口的成本非常大
解决办法:尽可能将一些通用的接口作为基类,其他的接口去继承

MVVM模式:

MVVM结构:

1.MVVM(Model-View-ViewModel),将Presenter替换为ViewModel。
2.View层就是展示数据的,以及接收到用户的操作传递给viewModel层,通过dataBinding实现数据与view的单向绑定或双向绑定
3.Model层最重要的作用就是获取数据了,当然不止于此,model层将结果通过接口的形式传递给viewModel层
4.ViewModel 层通过调用model层获取数据,以及业务逻辑的处理。 MVVM中 viewModel 和MVP中的presenter 的作用类似 ,只不过是通过 databinding 将数据与ui进行了绑定。

MVVM的优点

1.双向绑定技术,当Model变化时,View-Model会自动更新,View也会自动变化。很好做到数据的一致性,不用担心,在模块的这一块数据是这个值,在另一块就是另一个值了。所以 MVVM模式有些时候又被称作:model-view-binder模式。
2.View的功能进一步的强化,具有控制的部分功能,若想无限增强它的功能,甚至控制器的全部功几乎都可以迁移到各个View上(不过这样不可取,那样View干了不属于它职责范围的事情)。View可以像控制器一样具有自己的View-Model.
3.由于控制器的功能大都移动到View上处理,大大的对控制器进行了瘦身。不用再为看到庞大的控制器逻辑而发愁了。

MVVM的缺点

1.数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。
2.一个大的模块中,model也会很大,虽然使用方便了也很容易保证了数据的一致性,当时长期持有,不释放内存,就造成了花费更多的内存
3.数据双向绑定不利于代码重用。客户端开发最常用的重用是View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同模块的model都不同。那就不能简单重用View了。文章来源地址https://www.toymoban.com/news/detail-671784.html

到了这里,关于Android面试题:MVC、MVP、MVVM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【软件架构模式——MVC、MVP、MVVM】

    1. MVC(Model-View-Controller) 概念介绍: MVC是一种软件架构模式,用于组织应用程序的代码和逻辑。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。 **模型(Model)**负责处理应用程序的数据逻辑和状态。它表示应用程序的数据源,并封装了与

    2024年02月11日
    浏览(45)
  • MVC,MVP,MVVM的理解和区别

    MVC,MVP,MVVM的理解和区别

    MVC MVC ,早期的开发架构,在安卓里,用res代表V,activity代表Controller层,Model层完成数据请求,更新操作,activity完成view的绑定,以及业务逻辑的编写,更新view,这种模式是单向的,虽然代码存在分层,但是之间的耦合性还是很高,并且C层做的事情很多,久而久之会变得臃肿

    2024年02月10日
    浏览(12)
  • 什么是MVVM?MVC、MVP与MVVM模式的区别?

    MVVM(Model-View-ViewModel)是一种软件架构模式,用于将用户界面(View)与业务逻辑(Model)分离,并通过ViewModel来连接两者。MVVM的目标是实现可测试性、可维护性和可复用性。 MVC(Model-View-Controller)是另一种常见的软件架构模式,它将应用程序分为三个主要部分:模型(Mode

    2024年02月20日
    浏览(10)
  • 浅谈下mvc和mvp、mvvm到mvvm+Jetpack

    浅谈下mvc和mvp、mvvm到mvvm+Jetpack

    作者:抓不住老鼠的猫 MVC MVC全名为Model-View-Controller,图解如下 View:负责与用户交汇,显示界面。 Controller:负责接收来自view的请求,处理业务逻辑。 Model:负责数据逻辑,网络请求数据以及本地数据库操作数据等。 在MVC架构中,Controller是业务的主要承载者,几乎所有的业

    2024年02月16日
    浏览(12)
  • 什么是 MVVM?MVVM和 MVC 有什么区别?什么又是 MVP ?

    什么是 MVVM?MVVM和 MVC 有什么区别?什么又是 MVP ?

    MVVM是 Model-View-ViewModel的缩写,即模型-视图-视图模型。MVVM 是一种设计思想。 模型(Model):代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。数据保存—存放着各种数据,有的是固定写死的,大多数是从后端返回的数据 视图 (View):代表UI 组件,它负责将数

    2023年04月24日
    浏览(15)
  • 编程框架概述:MVC, MVP, MVVM, Flux/Redux, 和 Clean Architecture

            在软件开发中,选择合适的编程框架和架构模式对于构建可维护和可扩展的应用程序至关重要。初学者在面对多种架构选项时可能会感到困惑。本文将详细介绍五种流行的编程框架:MVC、MVP、MVVM、Flux/Redux和Clean Architecture。 MVC是一种将应用程序分为三个核心组件的架

    2024年01月20日
    浏览(12)
  • MVC、MVP、MVVM的成本角度结合业务,如何考虑选型?一文了解方方面面

    MVC、MVP、MVVM的成本角度结合业务,如何考虑选型?一文了解方方面面

    大家都知道,使用架构的目的是使程序模块化,做到模块内部的高聚合和模块之间的低耦合,使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率。那么MVC、MVP、MVVM,该怎么选?在什么最省去开发时间和业务成本? 本篇来彻底理解MVC、MVP、MVVM这三个

    2024年02月10日
    浏览(14)
  • [架构之路-195]-《软考-系统分析师》- MVC、MVP、MVVM架构各自的优缺点

    [架构之路-195]-《软考-系统分析师》- MVC、MVP、MVVM架构各自的优缺点

    目录 前言: 一、MVC 1.1 MVC的基本结构 1.2 MVC的工作流程 1.3 MVC的优缺点 二、MVP 2.1 MVP的基本结构 2.2 MVP的工作流程 2.3 MVP的优缺点 三、MVVM 3.1 MVVM的基本结构 3.2 MVVM的工作流程 3.3 MVVM的优缺点 MVC: 一个controller对应多个view,model可以直接通过view。从大锅烩时代进化,引入了分层

    2024年02月04日
    浏览(48)
  • 【前端面试常问】MVC与MVVM

    前端开发世界中,架构设计犹如高楼之基,决定着代码的组织层次、模块间交互方式以及项目长远的可维护性和扩展性。本文将全方位剖析两种主流前端架构模式——MVC(Model-View-Controller)与MVVM(Model-View-ViewModel),辅以实例助你透彻理解其核心理念与实战技法。 面对面试官

    2024年04月25日
    浏览(9)
  • MVC 和 MVVM的区别

    M(model数据)、V(view视图),C(controlle控制器) 缺点是前后端无法独立开发,必须等后端接口做好了才可以往下走; 前端没有自己的数据中心,太过依赖后台 M(model数据)、V(view视图)、VM(viewModel控制数据的改变和控制视图) html部分相当于View层,可以看到这里的Vi

    2024年01月25日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包