MVC与MVVM与MVP

MVC

MVC就是model view contrloler,简单来说就是通过controller的控制去操作model层的数据,并且返回给view层展示
在这里插入图片描述

  • view 接受用户交互请求
  • view 把请求转给controller处理
  • controller操作model进行数据更新保护
  • 数据更新保护之后,model会通知view更新
  • view更新变化数据用户得到反馈

缺点:把业务逻辑和展示逻辑分离,模块化程度高。但由于View是强依赖特定的
Model的,所以View无法组件化,无法复用

MVVM

mvvm即model-View-view-viewmodel,将其中的view的状态和行为抽象化,让我们可以将UI和业务逻辑分开,mvvm的优点就是低耦合性、可重用性、独立开发。
在这里插入图片描述

  • view接受用户交互请求
  • view将请求转交给viewmodel
  • viewmodel操作吗model数据更新
  • model更新完数据后,通知viewmodel数据变化
  • viewmodel更新view数据

解决了MVP大量的手动View和Model同步的问题,提供双向绑定机制。提高
了代码的可维护性。对于大型的图形应用程序,视图状态较多,ViewModel
的构建和维护的成本都会比较高。

mvvm模式和mvc有些类似 但有一下不同

  • viewmodel替换了controller,在UI层之下
  • viewmodel向view暴露它所需要的数据和指令对象
  • viewmodel接收来自model的数据

响应原理

vue采用数据劫持结合发布者-订阅者模式的方式 ,通过Object.defineProperty劫持data属性的setter ,getter 在数据变动时发布消息给订阅者,触发相应的监听回调

MVP

和MVC模式一样,用户对View的操作都会从View交移给Presenter。
Presenter会执行相应的应用程序逻辑,并且对Model进行相应的操作;而这
时候Model执行完业务逻辑以后,也是通过观察者模式把自己变更的消息传
递出去,但是是传给Presenter而不是View。Presenter获取到Model变更的
消息以后,通过View提供的接口更新界面。
在这里插入图片描述
缺点:View不依赖Model,View可以进行组件化。但Model->View的手动同步逻
辑 麻烦,维护困难

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MVCMVPMVVM 都是软件架构模式,用于组织代码和实现分离关注点的目的。 MVC(Model-View-Controller)是最早的一种架构模式,它将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。其中,模型表示应用程序的数据和业务逻辑,视图表示用户界面,控制器负责协调模型和视图之间的交互。 MVP(Model-View-Presenter)是在 MVC 模式的基础上发展而来的,它将控制器改为了 Presenter,Presenter 负责协调模型和视图之间的交互,同时也负责处理用户输入和业务逻辑。MVP 模式将视图和模型完全分离,使得视图可以独立于模型进行测试和开发。 MVVM(Model-View-ViewModel)是在 MVP 模式的基础上发展而来的,它将 Presenter 改为了 ViewModel,ViewModel 负责协调模型和视图之间的交互,同时也负责处理用户输入和业务逻辑。MVVM 模式引入了数据绑定机制,使得视图可以自动更新,同时也使得开发者可以更加专注于业务逻辑的实现。 总的来说,MVCMVPMVVM 都是用于实现分离关注点的目的,它们的区别在于各自的架构模式和角色的不同。MVC 模式是最早的一种架构模式,MVP 模式是在 MVC 模式的基础上发展而来的,MVVM 模式是在 MVP 模式的基础上发展而来的,引入了数据绑定机制。 ### 回答2: MVCMVPMVVM 都是一种设计模式,用于解决应用程序中视图、模型和控制器之间的关系问题。虽然它们都是为了实现分层架构而生,但它们在设计理念上有所不同,各有优劣。下面将分别介绍其区别与联系。 MVC(Model-View-Controller)模式最早于 1970 年代提出,它将应用程序划分为三个主要部分:数据模型、视图(用户界面)和控制器。其中,数据模型表示应用程序中的数据,视图表示呈现数据的用户界面,控制器负责处理用户的输入,并更新数据模型和视图。MVC 的最大优点是能够有效地将应用程序分离为多个独立的组成部分,分层清晰,便于维护和修改。但缺点是随着应用程序功能的增加,控制器变得越来越复杂,难以维护。 MVP(Model-View-Presenter)模式是在 MVC 模式的基础上提出的,它将一个控制器改为了一个或多个 Presenter。在 MVP 模式中,Presenter 接收视图的用户输入,并将业务逻辑分离到另一个模块中进行进一步处理。这样做的好处是,可以将业务逻辑从视图中解耦出来,视图与模型之间的关系更加松散,Presenter 则作为中间件来进行调控。MVP 模式的主要优点是:视图和控制器之间的耦合度降低,Presenter 可以方便地进行单元测试,MVP 更加适合复杂的业务逻辑场景。 MVVM(Model-View-ViewModel)是一种新型的设计模式,它于 2005 年提出。MVVM 将控制器和 Presenter 都替换为 ViewModel, ViewModel 作为视图和模型之间的中间层,用于绑定和管理视图和模型的数据。MVVM 模式的最大优点是,能够通过数据绑定自动处理模型和视图之间的同步,视图可以实现高度的灵活性,而模型又可独立于视图进行单元测试和开发。但与此同时,MVVM 模式也有一些缺点,例如较高的维护成本,增加了框架学习的难度等。 总的来说,MVCMVPMVVM 都是为了更好地分离视图和模型之间的关系,实现高内聚低耦合的目标。而MVVM 又是在 MVCMVP 的基础上不断演化而来,它的优缺点各不相同,应该根据实际情况来进行选择和使用。 ### 回答3: MVCMVPMVVM 是三种常见的前端架构设计模式,它们都致力于将应用程序的构建分离成三个不同的组成部分,以此来改进代码的可维护性、测试性和可扩展性。 MVC 是 Model-View-Controller 的缩写,它的核心思想是将应用程序分成三个独立的部分。Model 负责处理应用程序中的数据,View 是用户看到的 UI 部分,Controller 负责协调 View 和 Model 之间的通信。 MVP 是 Model-View-Presenter 的缩写,它是从 MVC 演变而来的一种模式。MVP 强调了对 View 和 Model 的分离,Presenter 代替了 Controller的职责,它是 View 和 Model 之间的中介者,将 View 的事件转换为 Model 的数据操作。 MVVM 是 Model-View-ViewModel 的缩写,它是一种完全基于数据绑定的设计模式。在 MVVM 中,ViewModel 从 Model 中获取数据并将数据绑定到 View 中。当 ViewModel 中的数据发生变化时,View 会自动更新。 三种架构的联系和区别在于: 共同点: 1. 都将应用程序分成了不同的部分,有助于提高代码可维护性和可测试性等。 2. 都是基于分层架构的设计思想。 3. 都有一个中介者来处理数据和视图之间的通信。 区别: 1. MVC将数据直接放到View中,而MVPMVVM都在Presenter或ViewModel中进行逻辑处理。 2. MVPMVVM更加注重解决应用程序中的业务逻辑问题,而MVC则更加注重解决应用程序中的客户端问题。 3. MVVM是一种使用数据绑定和命令处理的模式,可以让开发人员更加关注数据和逻辑处理,而不用关注UI的布局和样式。 4. MVPMVVM都优化了MVC中的Controller,使得Presenter或ViewModel分离了View和Model,并且降低了代码复杂度。 无论是MVCMVP还是MVVM,它们都有各自的优缺点,开发人员可以根据具体情况选择最适合的架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值