带大家理一理mvc,MVP,mvvm模式的差别

首先给大家讲解两个词:code block和code behind

啥事code block呢,就是逻辑代码块,业务代码块

而code behind 呢就是我们前台的视图层和codeblock连接的部分,很好地处理UI和逻辑各自分开的关系,你可以让UI和逻辑各自做好各自的事情

但是这两个词有点不够见名知义,所以我们发明出了几个模式的名字:

然后,讲一讲大家常常将的mvc,easy,视图层,控制层,模型逻辑层,view,control,model

但这个模式一般用于后端,控制层除了主要是用于跳转和应用逻辑层,将逻辑层的数据库连接代码块和相关的业务代码块相连接。

之后,我们再来看看mvvm模式。


这个一般用于前端的某些方面,比如说现在比较火的vue.js,就是用的这个模式、

啥是mvvm呢,虽然有四个字母,但其实他也只有三个字,view,view-model、model

这里的view-model就充当了控制器的作用

我们知道vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统

那么,我们的这个框架怎么去调用他的组件呢,实现调用已有的一些组件,通过view-model这个东西来实现调用

在MVP之后出现的一种“更好的”UI模式解决方案

ViewModel大致上就是MVP的Presenter和MVC的Controller了,而View和ViewModel间没有了MVP的界面接口,而是直接交互,用数据“绑定”的形式让数据更新的事件不需要开发人员手动去编写特殊用例,而是自动地双向同步

好,然后我们再看看mvp模式


其实就和mvc没太大区别了,他是多mvc的一个优化

重点在interface,接口

MVP定义了Presenter和View之间的接口,让一些可以根据已有的接口协议去各自分别独立开发,以此去解决界面需求变化频繁的问题。上面两图都有接口,不过接口的实现和使用细节不一样,不过思想上是一致的。

我们知道一个常识,需求变化最频繁的并不一定是最接近用户的界面,但基本可以确定的是,最接近用户的界面是因为需求变化而需要最频繁更改的

所以,在不用mvvm模式的时候,mvp无疑比mvc要强大很多,直接有一些接口和前端界面相连了。

综上所述,你搞明白了三者的关系了吗?

附加几个链接:

知乎:https://www.zhihu.com/question/20148405

blog:http://www.cnblogs.com/indream/p/3602348.html




MVCMVPMVVM是常用的软件设计模式,用于分离应用程序的不同组件,提高代码的可维护性和可重用性。以下是它们的概念和区别: 1. MVC模式(模型-视图-控制器):MVC模式是最古老也是最常用的设计模式之一。它将应用程序分为三个组件:模型、视图和控制器。模型负责处理数据和业务规则,视图负责展示数据给用户,控制器负责处理用户输入并更新模型和视图。MVC模式通过分离关注点,使得修改一个组件对其他组件没有依赖,增强了代码的可维护性。 2. MVP模式(模型-视图-展示器):MVP模式是基于MVC模式的演化,主要用于桌面和移动应用程序的开发。它与MVC的不同之处在于,视图和控制器被合并成一个展示器,展示器负责处理用户输入、更新模型并更新视图。MVP模式通过与视图分离,使得视图的变化不会影响展示器的逻辑。这样,在测试时可以更轻松地独立对展示器进行单元测试。 3. MVVM模式(模型-视图-视图模型):MVVM模式是一种用于构建用户界面的设计模式。它将视图的状态和行为抽象成一个视图模型,视图模型负责处理用户输入、保存视图状态、与模型进行交互,并通过数据绑定将数据自动更新到视图上。MVVM模式通过数据绑定机制,使得视图和模型之间的通信变得更简单,提高了可维护性和可重用性。它常用于Web前端开发和桌面应用程序的现代界面开发。 总结来说,MVCMVPMVVM是三种常见的软件设计模式MVC模式是最早的一种,将应用程序分为模型、视图和控制器,用于分离关注点。MVP模式是基于MVC模式的演化,通过将视图和控制器合并成一个展示器,便于测试和维护。MVVM模式是用于构建用户界面的设计模式,通过视图模型和数据绑定机制,实现了视图与模型之间的解耦。每种模式都有自己的特点和适用场景,根据具体需求选择合适的模式可以提高开发效率和代码质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值