MVC, MVP与MVVM

本文介绍了MVC、MVP和MVVM三种常见的软件架构模式。MVC将应用分为视图、控制器和模型,实现了数据与界面的分离;MVP模式中,控制器改名为Presenter,实现双向通信,使业务逻辑更集中;MVVM模式引入了ViewModel,通过双向绑定简化了View与Model的交互。每种模式各有优缺点,适用于不同的开发场景。
摘要由CSDN通过智能技术生成

MVC(Model-View-Controller)是开发有用户界面的软件最常见的架构之一。它将一个给定的软件应用程序分成三个相互连接的部分,从而将信息的内部表示与它被展示给用户或者接受用户输入的部分分开。

MVC的概念最初在70年代提出,随后不断地演化,产生了许多变种,例如HMVC(Hierarchical Model-View-Controller), MVA(Model-View-Adapter), MVP(Model-View-Presenter),MVVM(Model-View-Viewmodel)等。

在MVC模式中,软件可以分为三部分:

  • 视图(View):即用户界面,显示数据和接受用户交互
  • 控制器(Controller): 实现业务逻辑
  • 模型(Model):数据的存储,数据库的操作等。
    这里写图片描述

它们之间的联系为:

  • View接受用户交互请求,将指令传送给Controller
  • Controller实现业务逻辑,并且通过Model改变数据的状态
  • Model将新的数据的状态传递给View, 显示给用户。

    View和Controller之间使用策略模式,View使用组合模式,View和Model之间使用观察者模式。在MVC模式中,一个Controller可以被多个View使用,Controller不必知道View的细节。MVC的缺点之一是对Controller进行单元测试比较困难。这里所有的通信都是单向的。

MVP模式将Controller该名为Presenter, 通信方向也由单向变为双向,View与Model彻底分开,二者之间通过Presenter连接。View非常薄,少负责或不负责业务逻辑,而Presenter非常厚,大部分或所有的业务逻辑都在其中。

  • View接受用户交互请求,转交给Presenter
  • Presenter操作Model更新数据 数据更
  • Model通知Presenter
  • Presenter更新View-

与MVC的不同之处在于Presenter可以反作用于View。实际中MVP可以有两种实现,一种是Passive View,在View中放置简单的逻辑,而Presenter复杂复杂的逻辑。另一种是Supervising Controller, 倾向于在Presenter中放置全部的逻辑。可以集中测试Controller, 减少View出问题的风险。

MVVM模式将Presenter该名为ViewModel, 几乎与MVP模式完全一致。
这里写图片描述

这个Viewmodel除了一般的属性以外,还包括一些与View的显示有关的属性。通过双向绑定,使View的变动自动反映在Viewmodel中,反之亦然。在支持双向绑定的平台,MVVM更受欢迎。例如微软的WPF和Silverlight。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值