• MVC模式学习


    MVC简介

    MVC模式(Model–View–Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。它强制性的使应用程序的输入、处理和输出分开。它们各自处理自己的任务。

    M:数据模型(Model),负责封装应用的状态,并实现应用的功能。通常又分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息、用户信息等;而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等。

    V:视图展现(View),界面,用来将模型的内容展现给用户,用户可以通过视图来请求模型进行更新。视图从模型获得要展示的数据,然后用自己的方式展现给用户,相当于提供界面来与用户进行人机交互;用户在界面上操作或者填写完成后,会点击提交按钮或是以其它触发事件的方式,来向控制器发出请求。

    C:控制器控制器(Controller),用来控制应用程序的流程和处理视图所发出的请求。当控制器接收到用户的请求后,会将用户的数据和模型的更新相映射,也就是调用模型来实现用户请求的功能;然后控制器会选择用于响应的视图,把模型更新后的数据展示给用户。

    简单介绍一下MVC的发展历史:

    MVC开始是存在于桌面程序中的。

    模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。

    后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的语言(Asp.net 与PHP等)和与开发者的欢迎。

    对于我们Java开发模式来说大概有两个阶段:

    阶段一:Model 1。被叫做JSP开发模式,基于Jsp+JavaBean,以JSP为中心(JSP Centric)的设计的模型。

    阶段二:Model 2。可以叫做以Servlet为中心,基于Jsp+Servlet+JavaBean。此模式适合于团队开发,用此模式开发,速度相对较慢但可维护性高。

    而我们Java开发中最典型的MVC就是Model 2的模式,Jsp+Servlet+JavaBean          

                 

    JSP优点:开发前台界面方便,做UI开发容易

          缺点:业务处理不方便

    Servlet优点:强于业务逻辑开发,性能快, 安全性高。

        缺点:显示不方便

    JavaBean优点:可重复调用,封装请求中参数,进行相应的处理

    MVC的几个优点:

    1. 降低程序代码的耦合度
    2. 组件重用性高
    3. 部署快,开发快(开发人员各司其职)
    4. 可维护性高

    MVC的几个缺点:

    1. 没有明确的定义
    2. 不适合开发小项目
    3. 添加了系统结构与实现的复杂性

    在我们目前学习的框架中Struts2就是一个典型的MVC模式的框架。

    从视图角度(View):主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。

    从模型角度(Model):模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也划分到模型中)。

    从控制器角度(Controller)在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。

    而在外面的公司很多使用Spring MVC,在应聘时也会要求熟练使用Spring MVC。

    Spring MVC是一个基于“MVC模式”的WEB框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),使用非常简单,Spring MVC作为Spring中的一个模块,可以与Spring无缝集成。

  • 相关阅读:
    python中装饰器的原理
    python中封装、继承、多态
    Linux 中数组的使用
    Linux中环境变量中文件执行顺序
    Linux中FTP的一点理解
    原来... 拷贝构造函数的参数为什么必须使用引用类型
    C++ Programming language读书笔记
    linux 用户态 内核态
    Linux命令学习整理。
    fork &vfork --陈皓
  • 原文地址:https://www.cnblogs.com/mengqimoli/p/6751829.html
Copyright © 2020-2023  润新知