加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长资讯 > 动态 > 正文

让你了解 MVC、MVP 、MVVM

发布时间:2021-03-23 09:40:32 所属栏目:动态 来源:互联网
导读:看似没有什么特别的地方,但是由几个需要特别关注的关键点: View是把控制权交移给Controller,自己不执行业务逻辑。 Controller执行业务逻辑并且操作Model,但不会直接操作View,可以说它是对View无知的。 View和Model的同步消息是通过观察者模式进行,而同

看似没有什么特别的地方,但是由几个需要特别关注的关键点:

View是把控制权交移给Controller,自己不执行业务逻辑。

Controller执行业务逻辑并且操作Model,但不会直接操作View,可以说它是对View无知的。

View和Model的同步消息是通过观察者模式进行,而同步操作是由View自己请求Model的数据然后对视图进行更新。

MVC的优缺点

优点:

把业务逻辑全部分离到Controller中,模块化程度高。当业务逻辑变更的时候,不需要变更View和Model,只需要Controller 换成另外一个Controller就行了(Swappable Controller)。

观察者模式可以做到多视图同时更新。

缺点:

Controller测试困难。因为视图同步操作是由View自己执行,而View只能在有UI的环境下运行。在没有UI环境下对Controller进行单元测试的时候, Controller业务逻辑的正确性是无法验证的:Controller更新Model的时候,无法对View的更新操作进行断言。

View无法组件化。View是强依赖特定的Model的,如果需要把这个View抽出来作为一个另外一个应用程序可复用的组件就困难了。因为不同程序的的Domain Model是不一样的

MVP

MVP其实是MVC的一种演进版本,它更简单,将MVC中的Controller改为了Presenter,View通过接口与Presenter进行交互,降低耦合,方便进行单元测试。

View:负责绘制UI元素、与用户进行交互(Activity、View、Fragment都可以做为View层);

Model:对数据的操作、对网络等的操作,和业务相关的逻辑处理;

Presenter:作为View与Model交互的中间纽带,处理与用户交互的逻辑。可以把Presenter理解为一个中间层的角色,它接受Model层的数据,并且处理之后传递给View层,还需要处理View层的用户交互等操作。

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读