MVC简单的认识

简介:

    学习一个新知识,首先要了解的就是以下几个问题,它是什么?它能干什么?使用它有什么优点?这篇文章就环绕这几个问题来展开讨论。

         mvc不是一种编程语言,严格来说。它都不算是一门技术。它是开发软件时使用的一种“架构(框架)”。他就像是一种开发模式,或者是一个程序设计模板。

          软件开发者老生常谈的一个问题,就是软件开发过程中的变化,需求会变,技术会变。客户会变。老板会变,更痛苦的是PM也会变。开发过程中没有什么是固定不变的,改变会给软件开发带来很大的变故。这些我们都无法改变。我们唯一能做的就是尽可能的降低变化带来的损失,mvc就是当中的一种解决方式。

         MVCModel View Controller。它是模型,视图,控制器的缩写,是将界面显示,业务逻辑和数据分离的一种模型。这样我们就能够在不更改逻辑的基础上改动界面显示。减少了界面和逻辑功能之间的耦合性,添加了代码复用性。


         Model层。也叫模型层,主要负责和数据交互的任务。

模型层主要功能有定义数据结构。从数据库读、取数据,数据格式验证,读数据进行加工处理。

model层类似与三层架构中的DAL 层。主要与数据库进行交互。而且进行简单的数据处理。

         View层,即视图层,负责全部界面层的任务。事实上就是写入数据和显示数据。主要功能有获得数据,显示数据。决定界面技术(HTMLXMLFlash等)。界面排版;向Controller返回数据,决定数据传送方式,数据验证。

view层类似于三层中的UI层,主要是和用户进行数据交互的。

          Controller层。集控制层。接受用户输入的数据。调用模型和视图完毕用户的需求。当用户单击超链接或者发送HTML表单时。控制器事实上不做不论什么的处理和输出,它仅仅是依据实际情况决定调用哪个模型或者视图去处理这个请求,然后决定使用哪个视图来显示返回的处理结果。

Controller层和三层中的BLL层不一样,由于它没有数据处理或者是逻辑处理功能,它仅仅是控制调用其它组件来完毕需求。

        看一个简单的页面显示演示样例:


        首先,页面响应用户的事件,然后向controller发送用户需求,controller依据用户需求调用model组件,model组件完毕数据操作,然后返回到controllercontroller依据需求。选取相应view,将结果显示到界面。

         能够看到,controller将界面显示和数据处理全然的分隔开了。减少了它们之间的耦合,开发者能够依据用户需求随意更改界面显示,而不用考虑数据处理的功能,这样,系统的耦合性很低。而且添加了下层代码复用性。

        和三层的比較:


      能够看出来。mvc和三层差别非常大。三层的划分是为了软件开发过程中不同阶段的代码封装问题,层次的划分添加了系统的灵活性,减少了系统耦合度(没有全然解决问题)。

三层架构能够应用在全部的软件开发中。mvc是为了解决页面的更换问题。把页面显示和业务逻辑分开。mvc把全部的页面显示放到view中。把数据操作和处理封装到了model中,controller进行总体控制。mvc是为了解决BS项目中界面显示和业务逻辑的耦合问题。

        总结:MVC和三层事实上都是为了减少系统耦合性的,仅仅是它们側重点不同。它们没有好坏点,只是不适合解决这个问题,或者是否可以使用一个很好的问题。


版权声明:本文博客原创文章,博客,未经同意,不得转载。





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4712641.html,如需转载请自行联系原作者


相关文章
|
4天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1106 0
|
3天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
524 10
|
13天前
|
人工智能 运维 安全
|
12天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
4天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
301 0
|
11天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
807 23
|
4天前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。
|
4天前
|
缓存 监控 API
Amazon item_review 商品评论接口深度分析及 Python 实现
亚马逊商品评论接口(item_review)可获取用户评分、评论内容及时间等数据,支持多维度筛选与分页调用,结合Python实现情感分析、关键词提取与可视化,助力竞品分析、产品优化与市场决策。

热门文章

最新文章