初识MVC与三层架构

简介: MVC 即 Model View Controller 。mvc是一种很好的设计模式的综合应用。其中 M 即Model(模型层),主要负责处理业务逻辑以及与数据库的交互。

MVC 即 Model View Controller 。mvc是一种很好的设计模式的综合应用。其中

M 即Model(模型层),主要负责处理业务逻辑以及与数据库的交互。

V 即View(视图层),主要用于显示数据和提交数据。

C 即Controller(控制器),主要用于接受请求并控制请求转发。

 

三层架构,是最基本的项目分层结果。秉承“高内聚,低耦合”的思想,将整个业务应用划分为:UI层(表示层)、BLL(业务逻辑层)、DAL层(数据访问层)。系统的主要功能和业务逻辑在BLL层进行处理。

UI:表示层,也叫做用户界面层,用来接受用户的请求,以及数据返回。。可以是WEB、也可以是WinForm。

BLL:业务逻辑层,主要负责对数据层的操作,对数据业务逻辑的处理。

DAL:数据访问层,直接操作数据库,包括增、删、改、查、备份、还原等操作。

 

从二者的区别,我没有在网上找到一个定论,主要观点以下有几个:

① MVC是一种复合设计模式,而三层是一个软件架构。

软件架构是用接口来实现的,而设计模式则是一种设计思想、设计理念的升华,也可以算做一种解决方案。一个系统一般只有一个软件架构,而可以有多个设计模式,因为设计模式是可以复用的。

② 在三层架构中没有定义Controller的概念,而MVC中也没有将业务的逻辑访问看成两个层。当然了。在三层中也提到了Model,但是三层架构中Model(Entry)的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。  

三层结构模式又可归于部署模式,MVC可归于表示模式。

④三层架构划分为:View(UI)、BIZ(BLL)、ADO(DAL)、Entity(Model)、Controller。而MVC把 BIZ(BLL)、ADO(DAL)、Model(Entity) 统一称之为 模型(MODEL),得到:View、Controller、模型(MODEL) 三层。

       我认为,二者并不是互斥的,相反,MVC和多层应用软件结构有着异曲同工之妙,而且可以相互结合进行开发。MVC中的每一个环节都可以采用多层应用软件结构进行设计。而多层应用软件中的每一层又可以采取MVC来进行设计。所以说​可以是:M层对应于BLL和DAL。V对应于UI,而C则对应于层与层之间的联系。也可以M对应于DAL,C对应于BLL,而V仍然对应于UI。 

 

目录
相关文章
|
设计模式 存储 前端开发
MVVM、MVC、MVP三种常见软件架构设计模式的区别
MVC、MVP 和 MVVM 是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
721 12
|
11月前
|
存储 前端开发 调度
Flux 与传统的 MVC 架构模式区别
Flux是一种用于构建用户界面的架构模式,与传统的MVC架构不同,它采用单向数据流,通过Dispatcher统一管理数据的分发,Store负责存储数据和业务逻辑,View只负责展示数据,使得应用状态更加可预测和易于维护。
|
7月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
设计模式 前端开发 数据库
哇塞!Rails 的 MVC 架构也太牛了吧!快来看看这令人惊叹的编程魔法,开启新世界大门!
【8月更文挑战第31天】《Rails中的MVC架构解析》介绍了Ruby on Rails框架核心的MVC设计模式,通过模型(Model)、视图(View)和控制器(Controller)三部分分离应用逻辑,利用Active Record进行数据库操作,ERB模板渲染视图,以及控制器处理用户请求与业务逻辑,使代码更易维护和扩展,提升团队开发效率。
170 0
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
176 2
|
设计模式 前端开发 数据库
理解mvc架构
mvc架构
155 4
|
设计模式 存储 前端开发
MVC革命:如何用一个设计模式重塑你的应用架构,让代码重构变得戏剧性地简单!
【8月更文挑战第22天】自定义MVC(Model-View-Controller)设计模式将应用分为模型、视图和控制器三个核心组件,实现关注点分离,提升代码可维护性和扩展性。模型管理数据和业务逻辑,视图负责数据显示与用户交互,控制器处理用户输入并协调模型与视图。通过示例代码展示了基本的MVC框架实现,可根据需求扩展定制。MVC模式灵活性强,支持单元测试与多人协作,但需注意避免控制器过度复杂化。
170 1
|
前端开发 测试技术 API
探索安卓应用的架构演进:从MVC到MVVM
本篇文章将深入探讨安卓应用开发中的架构演进,特别关注从传统的MVC(Model-View-Controller)到现代流行的MVVM(Model-View-ViewModel)架构的转变。通过对比两种架构的设计理念、实现方式和实际应用案例,解析MVVM在提高代码可维护性和可测试性方面的优势。
226 26
|
存储 前端开发 算法
MVC(Model-View-Controller)架构
MVC架构帮助开发者构建清晰、可维护和可扩展的Web应用程序。
160 2
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
359 1