对MVC的总结和概述

本文详细介绍了MVC架构模式,包括其定义、组成部分及数据流动过程。MVC将业务逻辑、数据显示和逻辑控制分离,提高了代码的可复用性和维护性,但也存在学习曲线陡峭、结构复杂和数据流动效率低等问题。同时,文章对比了MVC与三层架构的区别,指出两者在解耦和适用场景上的不同。

MVC架构模式

什么是MVC

1.MVC是软件工程的一种架构方式
M:模型(Model);V:视图(View);控制器(Controller)
3.使用MVC目的:分离业务操作、数据显示、逻辑控制从而使同一个程序可以使用不同的表现形式

视图View

用户交互界面
在这里插入图片描述仅展示数据,不处理数据
在这里插入图片描述接收用户输入

模型Model

在这里插入图片描述MVC架构的核心
在这里插入图片描述业务;逻辑,如算法实现、数据管理、输出对象的封装等

控制器Controller

在这里插入图片描述接受用户的输入,并调用模型和视图去完成用户的请求处理
在这里插入图片描述不处理数据(只根据用户的请求来调用那种模型)
在这里插入图片描述返回视图,显示数据

MVC架构的数据流动

在这里插入图片描述

MVC与三层架构的区别

很多程序员在最开始使用MVC架构的时候都会认为Model就是用来访问数据库索取数据的,而最重要的业务逻辑则放在Controller中,最终写出来的系统结构:View用来显示界面,Controller做核心业务,而Model仅仅用来访问数据库做数据变化而已,很明显这是混淆了另一种软件开发模式->三层架构

三层架构

在这里插入图片描述UI层,表示用户界面
在这里插入图片描述BLL(Business Logic Layer)业务逻辑层,处理核心业务以及数据封装
在这里插入图片描述DAL(Data Access Layer)层,表示数据访问

MVC vs三层架构

在这里插入图片描述三层架构是面向接口编程,而三个层级之间是完全解耦;完全可替换
在这里插入图片描述MVC的每个部分都是紧密结合的,它的核心并不是解耦,而是重用。同样的Model可以适配与不同的控制器;搭配不同的视图用来显示不同的内容;然而系统最核心的业务逻辑始终包含在模型Model中,可以不断被重复使用。

三层架构

三层架构描述的是一个自下而上的具有明显层级的架构如下图所示:
在这里插入图片描述
1.首先创建数据库,根据数据库我们来创建DAL来获取或映射数据
2.得到原始数据后传递给业务逻辑层,进行数据验证、数据转换以及对象封装
3.封装好的数据传递给UI层显示给用户

MVC架构

MVC架构的组成部分是水平架构的,只有调用关系而没有层级关系,所有的数据流动和显示都是通过数据绑定、事件驱动所处理的,如下图所示:
在这里插入图片描述
1.首先创建数据模型(Model),根据Model来创建数据库
2.用户发起请求,将请求传递给控制器
3.控制器调用模型
4.模型获取数据并对数据获得验证,将转换好的数据交还给Controller(业务逻辑也发生在这里)
5.Control将数据交给视图(View),视图向用户展示数据

MVC的优点

在这里插入图片描述耦合性低:视图层和业务层分离,允许更改视图层代码而不需要重新编译模型和控制器的代码例如改写:Jsp、CSS、HTimeOut的代码并不需要重启服务器,同样一个应用的业务流程或业务规则发生改变只需要改变MVC的模型;因为模型与控制器视图相分离,所以很容易改变应用程序的数据层和业务规则
在这里插入图片描述可复用性高:随着技术的不断进步,需要越来越多的方式来访问应用程序,MVC允许各种视图来访问同一个服务端的代码,多个视图可以共享一个模型例如:用户可以通过手机或PC端对数据进行操作,但操作的业务都是一样的。这样就可以使同样的功能被不同界面所使用
在这里插入图片描述高可维护性:分离视图和业务逻辑可以使得Web应用更容易维护和修改,便于功能的增加和代码的拓展

MVC的缺点

在这里插入图片描述定义不明确,学习曲线陡
在这里插入图片描述结构复杂(并不适合小型甚至中等规模的应用程序):对于简单的界面严格的遵循MVC反而会增加界面的复杂性,可能产生过多的数据操作从而导致运行效率低下
在这里插入图片描述数据流动效率低:依据数据模型操作的接口的不同,视图可能需要多次调用才能获得足够的数据显示。而对于为变化的数据平凡的访问模型也可能会造成操作性能的下降。所以从数据操作的角度来说过多的平凡访问会导致流动的效率下降。

总结

通过对MVC的学习,我们了解MVC架构的原理以及其工作路程,在对MVC架构优缺点的评价中我们明白MVC架构也并非完美无缺的,所以在日后开发项目的中,要充分了解MVC架构的原理,并根据项目的实际需要判断是否需要使用MVC来搭建程序框架。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值