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

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的优缺点.txt

    1. **清晰的分层结构**:MVC模式通过明确地将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,使得每个组件都有明确的职责范围。这种分层结构有助于开发者更好地理解和管理复杂的系统。 ...

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

    2. 由于 MVC 框架的分层结构,可能会导致应用程序的开发和维护变得更加复杂。 Struts2 框架的优点: 1. Struts2 是一个基于 MVC 模式的框架,具有良好的可扩展性和灵活性。 2. Struts2 支持多种类型的视图,包括 ...

    MVC框架代码

    MVC框架的优缺点** 优点: - **解耦合**:MVC 分离了业务逻辑、数据和用户界面,使得各部分的修改互不影响。 - **可维护性**:代码结构清晰,易于维护和升级。 - **可扩展性**:新增功能时,只需添加新的模型、视图...

    三层结构与MVC

    #### 三、优缺点分析 ##### 3.1 三层架构的优点 - **开发人员职责清晰**: 开发人员可以根据自己的专长专注于某个特定层的开发。 - **代码重用**: 每一层的代码可以在不同的项目中重用。 - **易于维护**: 由于每个...

    ASP.NET MVC框架

    #### 八、ASP.NET MVC框架的优缺点 - **优点**: - 易于测试:由于清晰的分层,单元测试和集成测试变得更为简单。 - 支持RESTful风格:使得开发出的Web应用更加符合现代Web标准。 - 高度灵活性:可以自由定制...

    spring mvc

    在信息时代来临前,纸质方式管理公文档案是人们主要采用的信息管理方式, 这种人工管理方式存在的管理效率...该架构结合 MVC 设计模式以及 Structs 技术,采用分层开发方 式,利用 MyEclipse 开发工具进行系统的实现。

    ASP.NET MVC基础.pdf

    然而,MVC模式也存在一些缺点,主要包括: 1. 增加系统结构和实现的复杂性:对于简单的界面,遵循MVC原则可能会使系统结构变得更加复杂,特别是当模型、视图和控制器之间的交互过于频繁时,可能会导致系统效率降低...

    基于MVC模式的新生入学管理系统的设计与实现.doc

    系统的优点是简单易懂易操作,便于维护、检索迅速、查找方便,模块化设计和MVC分层清晰明了,能将系统功能模块完整呈现。但是,该系统也存在缺点,如系统完成的功能较少,用到的框架代码和JSP页面代码并不是那么容易...

    10种常见的软件体系架构模式分析以及它们的用法、优缺点.docx

    - **优点**:结构清晰,易于理解和维护,支持模块化开发。 - **缺点**:层之间的边界可能导致过度封装,增加通信开销。 - **适用场景**:大型企业级应用和Web应用程序。 2. **客户端-服务器(C/S)模式**: - *...

    java MVC模式

    然而,MVC模式也存在缺点: 1. 系统结构复杂,特别是在大型项目中,管理多个控制器、模型和视图可能变得困难。 2. 视图和控制器之间的关系过于紧密,如果处理不当,可能会导致修改一处代码影响到其他部分。 3. 对于...

    分层架构与业务逻辑实现方式

    其实,MVC 也是一种分层架构,把模型(Model)、视图(View)、控制器(Controller)三个不同职责分开。今天的企业级应用系统很多人一说就是三层架构,即:表示层、业务层、数据层。当然还有其他的分层,如:表示层...

    软件质量体系结构设计考题

    #### 四、三层体系结构的优缺点 1. **优点**: - **易于维护**:各层之间通过标准化接口进行交互,降低了各层间的耦合度,使得维护变得更加容易。 - **灵活性**:应用服务器可以通过标准化的数据访问接口访问不同...

    最全最细PHP相关面试总结

    2018PHP面试必问:摘要MVC 的优缺点 优点: 分散关注、 松散耦合、 逻辑复用、 标准定义 a. 开发人员可以只关注整个结构中的其中某一层, 方便多开发人员间的分工 b. 可以很容易的用新的实现来替换原有层次的实现 c. ...

    M-V-C 模式

    MVC的核心优势在于其清晰的分层结构,使得开发者能够更加高效地管理代码并降低模块间的耦合度。 #### 二、MVC模式的组成 ##### 1. **模型(Model)** - **定义**: 模型代表了应用程序中的数据层。它包含了业务逻辑...

    基于struts+hibernat的会员管理系统设计与实现

    讨论了J2EE软件体系结构的发展和软件分层的优势与不足,研究了开发Web应用的Model 1和Mode12 (MVC)体系结构,比较了两者的优缺点。讨论了几种实现MVC设计模式的框架的模式特点、使用场合及优缺点,在此基础上详细讨论...

    基于.NET平台的分层架构实战(完整资料).doc

    总结整个分层架构的设计与实现,分析优缺点,以及可能的优化方案。 本实战系列对.NET框架2.0下的分层架构进行了详细介绍,但并未涵盖3.5及更高版本的新特性,如LINQ和ASP.NET MVC。开发者需具备C#、ASP.NET、设计...

    ABP生成的初始框架

    1.2.3 分层体系结构:基础设施层 =》 领域层 =》 应用层 =》 展现层 1.2.4 提供一个基础架构来开发可重用可配置的模块 1.2.5 集成现今主流流行的前端开发框架(Bootstrap、Less、AngularJs、jQuery、Modernizr、...

Global site tag (gtag.js) - Google Analytics