美文网首页
项目架构

项目架构

作者: 瓦雷 | 来源:发表于2019-02-19 22:15 被阅读5次
image.png

mvp 相对于mvc 主要是将m与v进行拆分;

在mvc中 Activity 既要去处理 c 的工作,还得去更新v ;在mvp中 由p去控制,activity去做v处理显示

在mvc中,mv的分层总给人傻傻分不清的感觉,而且布局xml的作用过于弱,Activity即要去做控制,也要去处理view的交互,过于耦合。

为了解决这个问题,便诞生了mvp的设计模式,主要目的就是将Activity这个既要做controler也要做view的交互的模块进行解耦,把控制层交给presenter去处理,而Activity只做view层的处理,model层还是做数据的交互,但是与view层毫无联系,这便是mvp。

但是mvp有个缺点就是随着业务的不断扩充,一个页面可能非常复杂,UI的改变是非常多的,便会有非常多的case,这样就会造成View的接口会非常的庞大;

为了解决这个问题,MVVM就出现在了历史的舞台上,通过双向绑定的机制,实现数据和UI内容,只要想改变其中的一方,另一方可以及时的更新的设计理念,这样省去了在View层写很多case的情况,只需要改变数据即可。

MVVM的缺点:但是由于数据和视图的双向绑定,导致出现问题时不太好定位来源,有可能数据问题导致,也有可能业务逻辑中对视图属性的修改导致。如果项目中打算用MVVM的话可以考虑使用官方的架构组件ViewModel、LiveData、DataBinding去实现MVVM

如何选择?
1、如果项目简单,没什么复杂性,未来改动也不大的话,那就不要用设计模式或者架构方法,只需要将每个模块封装好,方便调用即可,不要为了使用设计模式或架构方法而使用。
2、对于偏向展示型的app,绝大多数业务逻辑都在后端,app主要功能就是展示数据,交互等,建议使用mvvm。
3、对于工具类或者需要写很多业务逻辑app,使用mvp或者mvvm都可。
4、如果想通过一个项目去学习架构和设计模式,建议用MVC然后在此基础上慢慢挖掘改进。最后你可能发现,改进的最终结果可能就变成了mvp,mvvm。

https://mp.weixin.qq.com/s/KA2gEWQ5yLOaDO-cnT31Zg

相关文章

  • 第3章 敏捷项目管理概述 转

    第3章 敏捷项目管理概述 3.1 敏捷项目管理架构 1.敏捷项目管理架构概述 敏捷项目管理架构(Agile Pro...

  • IT项目中的应用架构、技术架构、安全架构、部署架构

    IT项目中的应用架构、技术架构、安全架构、部署架构 在日常软件项目开发与实施中,经常会涉及到各种架构图,如应用架构...

  • 数据库事务、Redis缓存

    项目的架构(业务架构、技术架构、物理架构) 单机架构 ---> 多机架构 ---> 读写分离 ---> 集群架构 ...

  • 游戏架构

    架构的目的:提高项目的可维护性,方便项目的扩展 游戏架构

  • 仿今日头条项目架构

    仿今日头条项目架构 (一)—— ios11导航栏和tabBar层级仿今日头条项目架构 (二)—— 项目主架构的搭建...

  • APP架构

    架构因人而异,不同的架构师会有不同的看法;架构因项目而异,不同的项目需求不同,架构也自然会不同,脱离业务的架构就是...

  • 从微服务出发,聊一聊软件架构

    架构发展大致是从单体架构到SOA(面向服务架构), 再到微服务这样一个过程 就单体架构来讲, 项目耦合性强, 项目...

  • 项目架构

    iOS架构补完计划--浅谈架构模式(MVC/MVVM)

  • 项目架构

    下面详细介绍: AppDelegate:(专门为AppDelegate添加类别,使得AppDelegate不显得赘...

  • 项目架构

    1.前端: vue-cli+webpack+element UI 2.移动: APICloud 3.后台: nod...

网友评论

      本文标题:项目架构

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