zoukankan      html  css  js  c++  java
  • MVC模式

                MVC模式

    • MVC模式的概念

    MVC模式的全称是Model View Controller,是模型(Model)-视图(View)-控制(Controller)的缩写,它是一种软件设计的典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

     

    • MVC模式的由来

    MVC模式是是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,而因为smalltalk语言和Java语言有很多相似性,都是面向对象语言,后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

    • MVC模式的三个组成部分的详细介绍

    1.Model(模型层)

    这一层封装的是一系列的实体类,用于封装业务逻辑和数据模型,通常对应这一层中的实体类对应于数据库中相应的表,而我们做的一些j2ee的网站所操作的对象就封装成实体放在这一层中。这也是MVC核心之所在。

    2.View(视图层)

    这一层主要是指用于和用户进行交互的界面,用户可以通过这一层来对数据进行一些增删改查的操作,在我们所编写的网站程序中,这一层通常对应的是jsp,asp,html等用于进行前台页面表现的数据层。

    3.Controller(控制器层)

    这一层是处理用户操作,对用户在视图层进行的操作进行接收,并通过相应的业务逻辑,完成对model层中数据的增删改查,更新数据库的数据。

    • MVC的具体应用

     

    应用MVC模式最典型就是j2ee中的 jsp + servlet +javaBean。它使应用程序的输入、处理和输出分开,降低程序的耦合性,增加了程序复用性。 

    Model层:实现系统的业务逻辑,即javaBean部分

    View层:负责与用户交互,即在界面上展示数据对象给用户,即html,jsp

    Control层:Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作,当然就是Servlet的职责了。

    • MVC 模式的优缺点

    优点:

    1.降低耦合性

    视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

    2.可重用性提高

    随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。

    3.可维护性高

    分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

    缺点:

    1.没有明确的定义

    没有一家公司敢说自己的MVC是最标准的,MVC只是一种模式,并没有明确的定义。

    2.不适合小型、中等规模的程序

    花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。

    3.增加系统结构和实现的复杂性

    对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

    • 基于MVC的框架

    Struts2:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品

    SpringMVC:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制

     

     

     

     

     

  • 相关阅读:
    linux学习17 运维核心技能-Linux系统下用户权限管理
    linux学习16 Linux用户和组管理命令演练和实战应用
    linux学习15 Linux系统用户和组全面讲解
    linux学习14 Linux运维高级系统应用-glob通配及IO重定向
    linux学习13 Linux运维常用文件管理命令及系统变量基础
    linux学习12 bash的常见特性及文本查看命令实战
    linux学习11 Linux基础命令及命令历史
    linux学习10 Linux目录结构和根文件系统全面讲解
    【Hadoop离线基础总结】Hive调优手段
    【Hadoop离线基础总结】Hive的基本操作
  • 原文地址:https://www.cnblogs.com/sz20142898/p/6750109.html
Copyright © 2011-2022 走看看