面试题

作者: 小赵不在 | 来源:发表于2020-07-13 10:45 被阅读0次

一、MVC和MVP的概念、优缺点

1.概念:

MVC和MVP都是一种框架设计思想。他们都有Model层View层,model层是处理数据,包括数据库、网络请求,view层是展示数据,不同的是MVC中的C表示控制器(有点像中央控制器,M层和V层的交互由C层转发)。在MVP中P Presenter(主持人),是辅助协调M层和V层间的通信。和MVC中的C有点类似,但是在MVC中M层持有对C层的引用,而在MVP中M层不持有C层的引用,是通过回调callback的方式把数据交给P层。他们最不同的一点是MVP采用了契约类也就是接口的方式来约定各个层之间的通信方式

MVC的优点:

  • 控制层和View层都在Activity中进行操作,数据操作方便
  • 模块职责划分明确.主要划分层M,V,C三个模块.

MVC的缺点:

因为MVC中,V层是activity/fragment+xml,C层也是activity/fragment,所以就导致了随着硬件的发展,软件也越来越庞大、复杂,随着软件的迭代,activity/fragment里的代码越来越多,就会导致不好解耦,越是到后期,越不好维护和扩展,经常是改动一个地方其他很多地方也被修改,不利于单元测试

MVP的优点:

  • 模块职责划分明显,层次清晰,接口功能也非常清晰.
  • Model层和View层是分离的,能完全解耦.修改View层而不影响Model层.
  • 功能复用度高,方便.一个Presenter可以复用于多个View,而不用更改Presenter的逻辑.
  • 有利于测试驱动开发,以前的Android开发是难以进行单元测试.
  • 如果后台接口还没有写好,但已经知道返回数据类型的情况下,完全可以写出此接口完整的功能.

MVP的缺点:

虽然MVP优点很多,但是它也有缺点,缺点就是需要定义大量接口
所以MVP对于MVC来说,降低了耦合度,实现了我们软件开发中的高类聚低耦合开闭原则(对扩展保持开的态度,对原有代码保持闭的态度)

相关文章

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • ios面试题

    初级面试题 中级面试题 高级面试题 swift篇

  • Android超实用最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

  • Android最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

网友评论

      本文标题:面试题

      本文链接:https://www.haomeiwen.com/subject/owgocktx.html