`

MVC的优缺点

阅读更多

什么是MVC?

     话说N多年前,在一个叫SmartTalk的国度出现了一个叫MVC的家伙,后来流窜到了java国,在Java国里呼风唤雨(java的很多有界面的组件,比如swing都是采用MVC模式设计的)。

 

这个MVC是个什么样的家伙?
     首先,此人长了三只手。一只叫Model,它负责业务领域状态的知识,一只叫View,负责业务领域的表示视图,一只叫Controller,负责控制用户输入的流和状态。当模型某一部分发生变化的时候,通常使用事件通知表单来通知视图。但是这个家伙在Web上操作的时候遇到了麻烦。因为Web的浏览器是没有状态的,所以模型没有办法通知视图发生变化,而必须通过用户发出另一次请求才能知道模型的改变。(以上内容源自《jakarta struts编程》一书)

     

     在jsp2.0规范中,java的MVC不允许直接请求jsp页面而是需要通过Servlet来重定向,具体的效果先不说,起码倒是把Controller和View分开了,而且也统一了入口,都是从控制器进入的,那么控制器的职责也就很清晰了:

  • 拦截http请求
  • 将请求转换成要执行的具体业务逻辑的操作
  • 判断调用业务操作还是委托给处理程序
  • 帮组用户选择要显示给客户端的下一个视图
  • 将视图返回给客户端

分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:
     1、开发人员可以只关注整个结构中的其中某一层;
     2、可以很容易的用新的实现来替换原有层次的实现;
     3、可以降低层与层之间的依赖;
     4、有利于标准化;
     5、利于各层逻辑的复用。

     概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。

     

     一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。

     松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。

     进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。

     “金无足赤,人无完人”,分层式结构也不可避免具有一些缺陷:
     1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
     2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

分享到:
评论

相关推荐

    mvc优点和缺点的详细说明 mvc优点和缺点的详细说明

    ### MVC架构模式详解:优势与劣势 #### 一、MVC模式概述 MVC(Model-View-Controller)模式是一种广泛应用于软件开发中的设计模式,特别是在Web应用领域中被广泛应用。这种模式通过将应用程序分为三个核心组件:...

    MVC框架优缺点

    "MVC框架优缺点" MVC(Model-View-Controller)是一种程序开发设计模式,它实现了显示模块与功能模块的分离,提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、...

    Mvc的优缺点.txt

    ### MVC的缺点 1. **学习曲线陡峭**:对于初学者来说,完全掌握MVC模式可能需要一段时间的学习和实践。这是因为MVC涉及到多个抽象概念,需要理解每个组件的具体作用及其相互关系。 2. **初期开发成本较高**:采用...

    MVC设计思想及优缺点

    MVC思想 Model(模型)、View(视图)和Controller(控制器) MVC的优点 MVC的缺点

    MVC设计模式概念及优缺点

    ### MVC设计模式概念及优缺点 #### 一、MVC设计模式的概念 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web开发领域非常流行。该模式的核心理念在于将应用程序划分为三个...

    java面试题 你对MVC的理解,MVC有什么优缺点

    **MVC的缺点** - **复杂性增加**:随着项目的增长,管理和维护MVC架构可能会变得复杂。 - **过度设计**:对于小型应用,MVC可能显得过于繁琐。 - **性能影响**:额外的层可能会影响性能,尤其是在高流量应用中。 **...

    ssh框架优缺点

    ### SSH框架优缺点详解 SSH框架,即Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级架构模式。本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### ...

    软件工程师面试题(含答案).pdf

    - **MVC优缺点**: 优点包括模块化结构、易于维护和扩展、降低了组件之间的耦合度。缺点可能包括过度设计、增加复杂性,特别是对于小型项目。 - **Struts框架**: Struts是一个基于MVC设计模式的Web应用程序...

    SSH框架的优缺点

    下面我们将深入探讨SSH框架的优缺点。 **一、Struts2** Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点并解决了其不足。其主要优点包括: 1. **灵活的拦截器机制**:Struts2使用拦截器来处理请求,...

    java三大框架学习方法,优缺点,简介

    本文将详细介绍这三大框架的学习方法、优缺点以及它们的基本概念。 首先,Spring框架是Java企业级应用的基石,它提供了一个全面的编程和配置模型,旨在简化开发过程。学习Spring,你需要理解IoC(控制反转)和AOP...

    浅谈三大模式(mvc,mvp,mvvm)

    本文将深入探讨三种常见的设计模式:Model-View-Controller(MVC)、Model-View-Presenter(MVP)和Model-View-ViewModel(MVVM)。这些模式在构建用户界面时起着至关重要的作用,尤其是在Web和移动应用开发中。 ...

    Struts,Spring,Hibernate优缺点

    Struts、Spring 和 Hibernate 是Java Web开发中三大主流的开源框架,它们各自有着独特的功能和优缺点。在构建企业级应用程序时,理解这些框架的核心特性以及它们如何相互补充至关重要。 Struts 是一个基于MVC...

    Web开发.docx

    10. **MVC优缺点**: - 优点:关注点分离,代码复用,便于测试。 - 缺点:结构复杂,简单场景可能导致过度设计,影响效率。 11. **Session的问题与解决方案**: - IIS进程回收可能导致Session丢失。微软建议使用...

    Spring的优缺点及工作原理

    ### Spring的优缺点及工作原理 #### Spring框架概述 Spring框架是Java平台上最受欢迎的企业级应用程序开发框架之一。它提供了一套全面的编程和配置模型,旨在简化企业级应用的开发。Spring的核心特性主要包括依赖...

    STRUTS2优缺点

    ### STRUTS2 优缺点分析 #### 一、STRUTS2 优点概述 **1. Action 实现灵活性:** - **STRUTS2 的 Action 设计更灵活:**与 STRUTS1 中 Action 必须继承自 `Action` 类不同,STRUTS2 允许 Action 作为 POJO(Plain...

    三大框架的优缺点

    然而,Struts1存在一些缺点,比如Action类过于庞大,难以管理和调试,且对依赖注入(DI)支持不够完善。Struts2在Struts1的基础上进行了改进,引入了拦截器(Interceptor)机制,增强了灵活性,但同时也增加了复杂性...

    Java五大框架技术选型对比与优缺点.doc

    Java 五大框架技术选型对比与优缺点 Java 五大框架技术选型对比与优缺点是指 Java 语言中五大框架技术的选型对比和优缺点分析。这些框架包括 MVC、Struts2、Servlet、Filter 和 JavaBean。这些框架都是 Java 语言中...

    MVC架构模式ppt课件

    介绍了模式的分类,引出了MVC架构模式,继而介绍了:MVC架构模式的起源与设计思想、三大部分的功能与关系、MVC架构模式的实现、MVC架构模式的优缺点

    JAVA三大框架优缺点

    ### JAVA三大框架优缺点 #### 一、Struts框架优缺点 **优点:** 1. **实现MVC模式,结构清晰:** Struts框架通过分离模型(Model)、视图(View)与控制器(Controller),使得应用程序结构更加清晰,开发者可以...

Global site tag (gtag.js) - Google Analytics