首页 > 其他分享 >关于三层架构与MVC架构 及其controller与表现层的关系

关于三层架构与MVC架构 及其controller与表现层的关系

时间:2023-04-03 11:46:19浏览次数:36  
标签:Layer 架构 用户 视图 controller MVC Presentation

众所周知:

软件设计的三层架构是一种将软件系统分为三个主要组成部分的设计模式,这三个部分分别是:

  1. 表示层(Presentation Layer):负责与用户交互,接受用户输入,向用户呈现输出结果。
  2. 业务逻辑层(Business Logic Layer):处理业务逻辑,负责处理各种业务逻辑,实现系统的核心功能。
  3. 数据访问层(Data Access Layer):负责与数据存储系统交互,实现数据的持久化存储和检索。

MVC是一种常见的设计模式,它将应用程序分为三个主要部分:

  1. 模型(Model):代表应用程序的数据和业务逻辑。
  2. 视图(View):负责显示模型的数据,以一种易于理解的方式呈现给用户。
  3. 控制器(Controller):接收用户输入,并在必要时更新模型和视图。

 

而在一个项目中controller和dao以及service同时出现 他到底是什么架构呢:

采用了MVC架构和三层架构的结合。这种结合有时被称为MVC三层架构或MVC架构的变体。

即使Controller在某种程度上代替了Servlet,但它不是表示层(Presentation Layer)的组件。Controller是MVC架构中的一个独立组件,用于协调和管理请求处理过程,同时与视图层(Presentation Layer)和服务层(Service Layer)紧密协作,作为MVC架构的一部分,位于视图层(Presentation Layer)和服务层(Service Layer)之间的中间层。

 

 

如果该项目中没有存放模板引擎文件的目录,那么这通常意味着该项目使用了前后端分离的架构,将视图层(Presentation Layer)的职责交由前端框架来处理。在这种架构中,后端只负责提供API接口,返回JSON或其他格式的数据给前端框架,而前端框架负责处理用户的输入和输出,以及呈现数据给用户。

可以说该项目的表现层确实只有前端框架,而后端并不直接渲染页面或模板。不过需要注意的是,视图层(Presentation Layer)仍然是MVC架构中的一个重要组成部分,它负责将模型(Model)数据呈现给用户,并处理用户的输入,只是在前后端分离的架构中,视图层(Presentation Layer)的实现方式与传统的MVC架构有所不同,通常使用前端框架来处理。

 

标签:Layer,架构,用户,视图,controller,MVC,Presentation
From: https://www.cnblogs.com/ban-boi-making-dinner/p/17282632.html

相关文章

  • 微服务架构
    传统的应用架构表现为业务系统的各个模块实紧耦合的关系,各个模块运行在一个进程中,每次升级系统时都要重启整个应用进程,如果某个模块有问题,则可能导致整个系统无法正常启动。微服务架构则是将业务系统中的不同模块以微服务的方式进行拆分,使每个微服务都变成一个独立的project,独立编......
  • IIS6 MVC4 路由失效 无法访问
    大致找了网站上IIS6MVC4路由失效文章不少,对症下药的木有啊,折腾了我半个下午。报错内容如下:==========================================“/”应用程序中的服务器错误。无法找到资源。说明:HTTP404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂......
  • 架构师技能要点
    我想做一个软件架构师,那么要学习哪些技术呢作为软件架构师,您需要掌握以下技术:编程语言:掌握至少一门编程语言,例如Java、Python、C++等等。设计模式:熟悉常见的设计模式,例如工厂模式、单例模式、观察者模式等等。数据库:掌握关系型数据库和非关系型数据库的设计和使用,例如MySQL、O......
  • Elasticsearch 学习-Elasticsearch进阶-索引,文档,字段,映射,分片,副本,分配,系统架构,分片控
    Elasticsearch学习-Elasticsearch进阶4.1核心概念4.1.1索引(Index)​ 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个......
  • 5G网络架构与组网部署-1
    1.15G网络架构5G移动通信系统5G移动通信系统包括5GC(5GCoreNetwork,5G核心网)和NG-RAN(NextGenerationRadioAccessNetwork,5G无线接入网)。5G核心网与5G接入网通过NG接口连接,实现控制面和用户面功能;5G无线接入网之间通过Xn接口连接,实现控制面和用户面功能。其中,gNB是5G基......
  • 面试突击:MVCC 和间隙锁有什么区别?
    MVCC和间隙锁是两种完全不同的机制,但它们的目的都是相同的,都是用来保证数据库并发访问的,我们先来看二者的定义。MVCC定义MVCC是多版本并发控制(Multi-VersionConcurrencyControl)的缩写,是一种并发控制的方法。在MVCC中,每个读操作会看到一个固定版本的数据库记录,即使在并发环境......
  • MongoDB 架构
    优质博文:IT-BLOG-CN一、存储数据格式MongoDB作为主流的NoSQL数据库之一,使用面向文档的数据存储方式,将数据以JSON和BSON的方式存储在磁盘中。BSONBinaryJSON是一种基于JSON的二级制序列化格式,用于MongoDB存储文档并进行远程过程调用,作为网络数据交互的一种存储形式,类似于Prot......
  • Spring MVC是什么
    SpringMVC是Spring提供的一个基于MVC设计模式的轻量级Web开发框架,本质上相当于Servlet。SpringMVC是结构最清晰的Servlet+JSP+JavaBean的实现,是一个典型的教科书式的MVC构架,不像Struts等其它框架都是变种或者不是完全基于MVC系统的框架。SpringMVC角色划分清......
  • Spring MVC是什么
    SpringMVC是Spring提供的一个基于MVC设计模式的轻量级Web开发框架,本质上相当于Servlet。SpringMVC是结构最清晰的Servlet+JSP+JavaBean的实现,是一个典型的教科书式的MVC构架,不像Struts等其它框架都是变种或者不是完全基于MVC系统的框架。SpringMVC角色划分清......
  • springmvc中前端调用controller方法路径问题
          以前学习springmvc时没有理解前端访问controller中方法路径问题,做项目时刚好遇到,百度了一下没有找到想要的答案,后来突然就顿悟了。。。。。,虽然很基础但还是记录了一下,大佬请见谅。controller中主要用@RequestMapping注解来定义访问路径,一般定义一个类加载路径......