MVP设计模式

个人博客,欢迎来撩 fangzengye.com

MVP与MVC模式的关系

Model–view–presenter (MVP) 是model–view–controller (MVC)设计模式派生出来的。

MVP的由来

按照MVC的分层,Activity和Fragment(后面只说Activity)应该属于View层,用于展示UI界面,以及接收用户的输入,此外还要承担一些生命周期的工作。Activity是在Android开发中充当非常重要的角色,特别是TA的生命周期的功能,所以开发的时候我们经常把一些业务逻辑直接写在Activity里面,这非常直观方便,代价就是Activity会越来越臃肿,超过1000行代码是常有的事,而且如果是一些可以通用的业务逻辑(比如用户登录),写在具体的Activity里就意味着这个逻辑不能复用了。如果有进行代码重构经验的人,看到1000+行的类肯定会有所顾虑。因此,Activity不仅承担了View的角色,还承担了一部分的Controller角色,这样一来V和C就耦合在一起了,虽然这样写方便,但是如果业务调整的话,要维护起来就难了,而且在一个臃肿的Activity类查找业务逻辑的代码也会非常蛋疼,所以看起来有必要在Activity中,把View和Controller抽离开来,而这就是MVP模式的工作了。

MVP作用:MVP经常用来创建用户界面。

presenter

是作为一个“中间人”的角色存在。在MVP中,所有页面显示逻辑都会被推送到presenter。

MVP的逻辑框架图

从上图不难发现,View、Presenter、Model都是对外提供接口,这就是MVC的核心思想。

MVP模式核心思想

MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类不变。总而言之,就是对外提供接口。

 

https://www.cnblogs.com/zhaojianhua/p/9239656.html

https://blog.csdn.net/u011418943/article/details/69840880

posted @ 2020-12-13 10:38  开源的Boy  阅读(199)  评论(0)    收藏  举报