ITPub博客

首页 > IT职业 > IT职场 > MVC MVVM和MVP三种设计模式之个人理解^_^

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

IT职场 作者:xlmxlmxlm 时间:2021-09-09 10:06:03 0 删除 编辑

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

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

图片描述

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

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

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

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

图片描述

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

通信模式如下:

图片描述

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,反之亦然。


图片描述

MVVM模式关键点:

1.用户和View交互。

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

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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/930/viewspace-2816329/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    86
  • 访问量
    521