`
lorry1113
  • 浏览: 264527 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MVC与三层架构的异同点

    博客分类:
  • java
阅读更多
同样是架构级别的,它们有什么相同点和不同点呢?这篇文章讨论一下它们的异同点。希望能帮助读者理解其中的玄机。


其实它们相同的地方在于他们都有一个表现层。


但是他们不同的地方在于其他的两个层。


首先先解释一下MVC。V即View.是视图的意思。C即Controler.是控制器的意思。而M即Model,是模型的意思。这三个里.最不容易理解的应该是Model.就是什么是Model,而为什么叫Model。我先不说为什么叫Model,先解释Controler。


Controller是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面展现的一个中间层,那么Controler到底管什么工作呢?先不说.先来看下在Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的 Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。


再来说说M,即Model,在Java Web里说的是JavaBean,我认识的很多人都把JavaBean误认为是实体类,其实JavaBean有比实体类更丰富的定义,在JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。


再说三层架构。三层其实很好理解,界面,业务,数据访问,就这三个,从字面都可以理解出它们的意思。我要说的是它和MVC的区别。在三层架构中没有定义 Controler的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。


当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。不一样的概念。虽然名字一样。


分享到:
评论

相关推荐

    ASP.NET MVC实战

    MVC框架是一个应用程序开发框架,已经流行多年,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller),从而实现了程序的关注点分离,使得开发、测试和维护变得更加容易。 本书不仅...

    java面试宝典

    一般用截取ID方法,还有是三层嵌套方法。 47 200、xml有哪些解析技术?区别是什么? 48 201、你在项目中用到了xml技术的哪些方面?如何实现的? 48 202、用jdom解析xml文件时如何解决中文问题?如何解析? 48 203、编程用...

    JSF与Struts的异同.rar

    - **插件架构:**Struts有丰富的扩展点,可以通过拦截器(Interceptor)实现自定义功能。 - **模板技术:**如Tiles,允许开发者定义可重用的页面布局。 - **支持MVC设计模式:**通过分离视图、模型和控制器,提高了...

    软件模式课后作业.zip

    在作业中,学生可能需要分析或设计一个系统的架构,使用常见的软件体系结构模式,例如微服务架构、三层架构(表示层、业务逻辑层、数据访问层)或者模型-视图-控制器(MVC)架构。 3. **until2 和 until3**:这两个...

    asp.net课件-适合教学

    1. **ASP.NET架构**:介绍ASP.NET的三层架构,包括表示层、业务逻辑层和数据访问层,以及它们如何协同工作来实现应用程序的功能。 2. **ASP.NET页面生命周期**:详细讲解从用户请求到页面响应的整个过程,包括初始...

    Java Web开发学习路线图(JBoss Seam方向)

    1. **Model1与Model2**:区分两种开发模式,重点理解Model2模式下的MVC架构。 2. **Struts与WebWork**:了解Struts 1.0的工作原理及其与WebWork框架的异同。 3. **Spring/IOC**:掌握Spring框架的核心理念——...

    Net-面试题目集锦

    #### 十三、三层架构体系 - **Web 层**:处理用户界面和请求响应。 - **Business 层**:业务逻辑处理。 - **DataAccess 层**:数据访问层,负责与数据库的交互。 #### 十四、ASP.NET MVC 模式实现 ASP.NET MVC 通过...

    java面试题题库详解

    JSP与Servlet的异同及其应用范围 **知识点概述:** - **应用场景:** JSP 主要用于展示层,而 Servlet 通常用于控制层。 - **执行环境:** 二者都在服务器端运行。 - **如何选择:** 根据实际需求选择合适的技术...

    ASP.NET笔试面试题

    14. 三层架构: - Web层:负责用户界面交互。 - Business层:处理业务逻辑和数据验证。 - DataAccess层:处理数据库操作。 15. ASP.NET实现MVC模式: - ASP.NET MVC模式通过Model(模型)、View(视图)和...

    .Net 面试笔试大全-附答案

    #### 十四、三层架构体系 三层架构体系一般分为: - **Web层**:负责用户界面展示。 - **Business层**:负责业务逻辑处理。 - **Data Access层**:负责数据访问操作。 #### 十五、ASP.NET实现MVC模式 在ASP.NET中,...

    Java面试题包括SSH的面试

    3. HQL(Hibernate查询语言):与SQL的异同,以及如何进行复杂查询。 4. 第二级缓存:提高性能的机制,以及如何配置和使用。 5. Hibernate的懒加载和即时加载:理解这两种策略,以及何时选择哪种。 面试中,面试官...

    Java学习路线图.pdf

    - **后端技术**:JDBC、事务处理、三层架构、Servlet、Filter、JSP、EL、JSTL、MVC、分页。 13. **数据库MySQL**: - **SQL语言**:学习DML(增删改查)操作,理解数据库设计原则,使用索引和存储过程,创建视图...

    ASPnet面试试题及答案

    12. **三层架构**: - 表示层(Presentation Layer):与用户交互,如ASP.NET Web页面。 - 业务逻辑层(Business Logic Layer):实现业务规则和流程。 - 数据访问层(Data Access Layer):处理与数据库的交互。...

    笔试题(JavaEE).doc

    例如JSP的动态INCLUDE与静态INCLUDE、应用服务器类型、数据连接池的工作机制、Servlet的doGet()和doPost()调用时机、JSP与Servlet的异同及联系、JavaEE的定义、MVC模式的含义、C/S与B/S架构的区别、request对象的...

    ASP_NET面试题 _NET系列面试题_信息收集

    14. **三层架构**: - Web层(表现层):用户界面,如ASP.NET页面。 - Business层(业务逻辑层):处理业务规则和数据验证。 - DataAccess层(数据访问层):与数据库交互,执行CRUD操作。 15. **ASP.NET 实现...

    IOS源码——IOS可扩展底部TablBar.zip

    8. MVC(Model-View-Controller)架构:iOS开发通常遵循MVC架构,源码将展示如何在Controller层处理TabBar与View的交互,以及可能的数据模型(Model)设计。 9. Swift或Objective-C语法:源码可能是用Swift或...

    学习积累的代码段

    4. **分层架构**:常见的ASP.NET应用架构包括表示层、业务逻辑层和数据访问层,这有助于代码的组织和重用,提高可维护性。 5. **MVC模式**:ASP.NET MVC(Model-View-Controller)是一种设计模式,它将应用程序分为...

    JSP七个小项目代码和笔记汇总

    两者可以结合使用,形成MVC架构中的View和Controller。 **六、EL(Expression Language)与JSTL(JSP Standard Tag Library)** EL是一种轻量级的表达式语言,用于简化JSP中的数据访问。JSTL则提供了一系列标准标签...

    100家企业iOS面试题(下)

    - **异同点**:Objective-C和Java都是面向对象的语言,但它们的语法、编译方式以及运行环境有所不同。Objective-C主要用于iOS和macOS开发,而Java则应用范围更广。 - **平台依赖**:Objective-C紧密集成于Cocoa ...

Global site tag (gtag.js) - Google Analytics