软件功能模块的MVC实现

  • 格式:doc
  • 大小:233.00 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、软件模块MVC实现

1.1 软件项目是由模块组成

1.1.1 软件是由其模块组成

在软件开发中,最终需要生产出“软件”产品。但开发出的“软件”是由功能“模块”组成。

根据定义,所谓的软件“模块(module)”是在程序设计中,为完成某一相对独立功能所需的一段程序或子程序;也可以指是某大型软件系统的一部分。

前面我们编写的“用户管理”,我们编写了用户信息的“列表查询”功能,那么“列表查询”是用户管理软件的一个功能模块。如果我们对“用户”信息进行管理,还需要有:“新增用户信息”、“修改用户信息”、“删除用户信息”操作。那么,“新增用户信息”、“修改用户信息”、“删除用户信息”均是“用户管理”的模块,也称功能模块。我们可以用软件功能模块结构图表示它们的关系。例如,“用户信息管理”的模块组成由下图所示,该图不但表示了其功能模块的组成,而且表示了其模块结构的设计。

图1 用户信息管理的功能“模块”组成结构

1.1.2 软件项目开发是以模块为单位进行

我们在软件开发时,或者在编码时,不是无序地进行的,往往是以模块为单位进行的。

例如:用户信息管理包括:新增用户信息、修改用户信息、删除用户信息、查询用户信息等模块。我们在程序编码时,就分别对它们一个一个进行。

【案例1-1】完整实现“用户信息管理”模块中新增、修改、删除、查询功能,并使它们在一个统一界面中操作。

根据分析与设计,“用户信息管理”中有新增用户信息、修改用户信息、删除用户信息、查询用户信息子模块。

每一个模块有自己的操作界面、自己的访问数据库操作方法、还有自己的控制器,然后将它们通过主界面集成起来。这样就完成了该案例要求的软件功能模块的开发。

在主界面上,对各个子模块的操作链接进行布局,用户操作后再返回到该主界面。而每个模块分为界面、逻辑处理、控制器组成,分别由JSP、Javabean、Servlet实现。

1.1.3 “用户信息管理”程序结构简介

在对软件进行设计时,如果以“程序”的观点进行组织与管理则程序会非常多、类型也不同,与应用业务的关系不紧密,所以管理起来非常困难。但在开发软件时,要克服“以程序为单位”的编程思想,而要“以模块为单位”进行开发;即先划分模块,然后再将每个模块分解成不同的程序文件,则会比较有秩序。

例如:用户信息管理包括:新增用户信息、修改用户信息、删除用户信息、查询用户信息等模块,则程序文件以这些模块分为不同的类型。

用户信息管理本身是一个模块,而其又是由子“功能模块”组成,而各模块又是由多个程序文件组成。而每个功能模块又是由:界面、逻辑处理的Java类、Servlet组成。这三个部分分别表示:视图、模型、控制。视图表示:用户看到的界面;模型表示:业务数据和业务规则;而控制表示:接受用户的输入并调用模型和视图去完成用户的需求。

现在,将一个软件“模块”,分解为:视图、模型、控制器来分别编码,是一种广泛流行与应用的设计模式,即:MVC设计模式(Model-View-Controller,Model-模型,View-视图,Controller-控制器)。

1.2 基于MVC设计模式软件开发概述

1.2.1 MVC设计模式概述

所谓的设计模式是一套被反复使用、成功的设计总结与提炼。而MVC设计模式是将软件的代码分为M、V、C三层来实现的一种设计方案。

MVC全名是Model-View-Controller的缩写,分别表示:M模型(Model)-V视图(View)-C控制器(Controller),它一种软件设计典范。它采用业务逻辑和数据显示代码分离的方法,并将业务逻辑处理放到一个部件里面,而将界面、以及用户围绕数据的展开的操作单独被分离出来。MVC类似于传统软件开发中模块的

输入、处理和输出功能,集成在一个图形化用户界面的结构中。

1.视图(View)

视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML、XML、WML等一些标识语言。JSP作为动态网页常常充当Web应用的视图。

2.模型(Model)

模型表示业务数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能封装数据库连接、业务数据库处理这样的构件,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以能提高代码的重用性。模型一般用JavaBean技术实现。

3.控制器(Controller)

控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

1.2.2 MVC设计模式的优缺点

作为一种设计模式,MVC即有很多好处,但也有一些缺点。

1.MVC的优点

MVC的优点表现在:耦合性低、重用性高、可维护性高、有利软件工程化管理等。

2.MVC的缺点

由于MVC内部原理比较复杂,理解起来并不很容易。所以,在使用MVC时需要精心的计划、需花费一定时间去思考。

所以,MVC有调试较困难、不利于中小型软件的开发、增加系统结构和实现的复杂性等缺点。

1.3 软件项目功能模块分解与设计

以一个学生管理系统软件的开发为例,介绍软件功能模块的分解及实现。

1.3.1 学生管理系统软件项目的开发

某高校需要通过“学生管理软件系统”对学生的相关信息进行计算机管理。本章以该项目为引导案例,介绍软件的一个模块的MVC模式的开发。

围绕学生的信息有许多,包括:学生基本信息、学生学习信息等。而学生的学习信息与教师信息、课程信息相关联。为了简单起见,我们暂时以上述信息的管理为主,介绍其功能的分解与实现。

我们简单地将该软件分解为如下几个模块:

1、学生信息管理

2、教师信息管理

3、课程信息管理

4、学生成绩管理

为了说明用Jsp+Servlet+JavaBean技术实现MVC方式的开发,我们以“学生信息管理”模块的实现为案例进行MVC实现介绍。

1.3.2 功能模块分解

为了技术说明清楚,本项目实现的功能非常简单。本软件分解为四大模块,分别对教师信息、学生信息、课程信息、成绩进行管理。而学生信息只包括:编号、姓名、性别、班级、年龄、成绩6个。

图2给出了该软件的模块结构的分解与设计。

图2 学生管理软件模块设计结构图

模块:教师信息管理、学生信息管理、课程信息管理的实现技术基本相同,下面只以一个模块“学生信息管理”为例,介绍该模块基于MVC的实现。

【案例2】对“学生信息管理”模块进行MVC设计模式的程序编码与功能实现。并对该功能的软件设计内容进行表示。

实现思路:本案例技术上与要求同案例1,但是学生信息比较多,包括:学号、姓名、性别、班级、成绩等。其功能子模块可从图3中可以看出,即“学生信息管理”模块包括如下子模块:

1)学生信息显示,包括:单个学生信息显示、学生信息列表显示两种

相关主题