MVC、MVP、MVVM区别

MVC、MVP、MVVM区别

  • MVC(Model-View-Controller) 。是一种设计模式,通常用于组织与应用程序的数据流。它通常包括三个组件:模型(Model)、视图(View)和控制器(Controller)1。

    • 模型(Model):负责应用程序中数据逻辑的部分,通常数据模型唯一负责在数据库中存取数据。
    • 视图(View):依据模型创建,负责其中数据的显示。
    • 控制器(Controller):应用程序中处理用户交互的部分,负责从视图读取数据,控制用户的输入,并向模型层发送数据。

    这一设计模式广泛应用于语言的框架中,不论是java的spring 还是python 的django,flask,go的gin框架。Django中又称之为MTV (model-template-view),但实际上就是MVC,没啥区别。

    在这里插入图片描述

MVP, 不是(Most Valuable Player)哈, 这里的 MVP 指 Model、View和 Presenter
在这里插入图片描述

并不是简单的把Controller 替换成了 Presenter, 而是将View 完全独立处理,仅负责视图相关操作,处理请求进来的数据已经返回处理好的数据, 避免在View 有过多的逻辑处理,而Presenter 则专心复杂和 Model 进行数据获取相关逻辑。

MVVM,它由三部分组成:Model、View和ViewModel

在这里插入图片描述

  1. Model:指数据模型和业务逻辑,是应用程序中处理数据和业务逻辑的部分。在WPF中,Model通常是一个类,这个类包含了数据的属性和行为。
  2. View:指用户界面,是应用程序中用户与计算机交互的部分。
  3. ViewModel:是连接Model和View的桥梁,它包含了与View相关的所有数据和业务逻辑,以及将数据绑定到View的方法。ViewModel为View提供了数据和业务逻辑的接口,使得View可以与Model进行交互。

在MVVM中,View和Model之间的联系是通过ViewModel进行处理的。ViewModel通过数据绑定将View中的控件与Model中的数据进行关联,当数据发生变化时,View中的控件也会相应地更新。同时,ViewModel也处理了用户在View中进行的交互操作,将用户的输入转化为业务逻辑进行处理,并将处理结果反馈给View,使得用户可以获得更好的交互体验。

相对于传统的MVC架构模式,MVVM更加强调View和Model之间的松散耦合,通过ViewModel进行数据绑定和业务逻辑处理,使得开发人员可以更加专注于业务逻辑和数据的开发,而设计人员可以更加专注于页面设计。MVVM框架便是前后端分离框架发展史上的一次思想的完全变革。它是将数据模型双向绑定的思想作为变革的核心,即View的变动,自动反映在ViewModel上面,而ViewModel的变动也会随即反映在View上面,从而实现数据与模型的双向绑定

MVP 和 MVVM 共同点在于,完全断开了View 和 Model 直接的联系,起到了很好的中间桥梁作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go&Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值