写一个最简单的demo理解MVP的本质

编程入门 行业动态 更新时间:2024-10-07 16:20:20

写一个<a href=https://www.elefans.com/category/jswz/34/1769011.html style=最简单的demo理解MVP的本质"/>

写一个最简单的demo理解MVP的本质

mvp是一个老生常谈的话题了,网上太多讲MVP的文章了。但有的文章不是结合了rxjva,retrofit等开源项目,就是讲的太过复杂。所以我会写一个最简单的mvp demo。来帮助大家理解mvp的本质。

大多数时候,问题都可以拆解为,WHTA,WHY,HOW;什么是MVP,为什么使用MVP,如何使用MVP。

WHAT:先说什么是MVP,

上面这张图是网上找的,其实这张图已经很明显了,MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互。而在mvp中,view层只和presenter层交互,而model层也和presenter交互,presenter构成了view层和model层的桥梁,也解耦了view层和model层。这一点很关键。我认为,这也是mvp的本质:

解耦view层和model层,让view层和model层通过presenter层进行通信。换个说法就是让诸如网络请求,数据库读写的逻辑,从activity中剥离出来。activit只负责页面的展示,不关心model层的逻辑。

WHY:之后来谈谈为什么要使用mvp

如果大家阅读过github上的一些开源的android项目,例如telegram,一款即时通讯软件,;或者TweetLanes,一个第三方的功能完整的Twitter客户端。这些开源项目都存在一个问题,就是一个activity文件中一两千行,甚至三四千行代码。当然,我想这个在android项目中并不是一个奇怪的现象,当你的项目足够复杂,没有什么是不可能。在基于传统android架构的mvc模式中。model层很多时候只是一个bean类。而view层只是一个xml文件,controller层也就是activity层几乎承担了诸如网络请求,数据库,更新UI等所有的工作,全在activity里完成。这也就导致了activity文件十分庞大臃肿。但是,问题接踵而至。多人维护这样的一个项目是很痛苦的,一个几千行的activity,假如某个人改动了其中的一行,可能会导致其他修改他的人非常痛苦,因为牵扯太多的逻辑了。所以,人们开始尝试把几千行的代码,分成很多模块。网络请求放在一个模块,UI更新放在一个模块,其他的东西放另一个模块。之后就有了MVP。

HOW:在android中如何使用MVP模式

这里我新建了一个项目,项目里有3个class和一个interface,这就是最简单的mvp模式了。

更多推荐

写一个最简单的demo理解MVP的本质

本文发布于:2024-02-13 20:33:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760303.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最简单   本质   demo   MVP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!