为了账号安全,请及时绑定邮箱和手机立即绑定

MVC MVVM和MVP三种设计模式之个人理解^_^

标签:
设计模式

对于3种设计模式,本人最为熟悉的是MVC,使用最多的也是MVC模式。后来又了解到另外两种模式,不过并没有实际使用过。在网上看到对MVVM和MVP这两种模式的介绍以及与MVC之间的关系说明的文章有很多,这里就说一下自己对这三种模式的看法。

MVC模式:想必大多数对于这个模式并不陌生,因为最初使用的设计模式就是MVC模式。而且这个设计模式被很多热门框架所使用,比如Ruby on Rails,spring Framework,Apple iOS Development and ASP.NET MVC。MVC即Model-View-Controller。

5bd9518300016fa405480178.jpg

Model代表了描述业务路逻辑,业务模型、数据操作、数据模型的一系列类的集合。这层也定义了数据修改和操作的业务规则。

View代表了UI组件。他只负责展示从controller接收到的数据。也就是把model转化成UI。

Controll负责处理流入的请求。它通过View来接受用户的输入,之后利用Model来处理用户的数据,最后把结果返回给View。Controller就是View和Model之间的一个协调者。

它们之间的通信模式如下:

5bd951840001e13110260606.jpg

MVP模式:这个模式把P(Presenter)换成C(Controller)就和MVC很像了。MVP即Model-View-Presenter。

通信模式如下:

5bd9518600016d7610240594.jpg

1. 各部分之间的通信,都是双向的。

2. View 与 Model 不发生联系,都通过 Presenter 传递。

3. View 不部署任何业务逻辑,称为"被动视图",即没有任何主动性,所有逻辑都部署在Presenter那里。

MVP模式关键点:

1.用户和View交互。

2.View和Presenter是一对一关系。意味着一个Presenter只映射一个View。

3.View持有Presenter的引用(个人猜测:应该是通过接口交互,并不直接引用Presenter),但是View不持有Model的引用(个人猜测:即使接口,也不会)。

MVVM模式:将Presenter换成ViewModel,基本上与MVP模式一致。唯一的区别是,它采用双向绑定:View的变动,自动反映在 ViewModel,反之亦然。


5bd9518600015aa210160584.jpg

MVVM模式关键点:

1.用户和View交互。

2.View和ViewModel是多对一关系。意味着一个ViewModel只映射多个View。

3.View持有ViewModel的引用,但是ViewModel没有任何View的信息。

4.View 和ViewModel之间有双向数据绑定关系。


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消