学生管理系统的几个设计模式

本次学生管理系统,主要采用的是使用MVC模式,单例模式,和过滤链模式进行整个项目的设计以及数据库的设计。

下面简单介绍下,经过这次项目对这几种设计模式的了解。

一、MVC设计模式

首先,先介绍下MVC设计。MVC全名是Model View Controller,是模型(model数据持久层)-视图(view表现层)-控制器(controller业务逻辑层)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

三层体系结构是将整个系统划分为下图所示的结构

(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。

该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时

系统提供数据验证功能。

(2)业务逻辑层(Business layer):包含业务规则处理代码,即程序中与业务

相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻

辑层主要面向业务应用,为表示层提供业务服务。

(3)数据持久层(Persistence layer):包含数据处理代码和数据存储代码。数

据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。

三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分,各层与其余层分离,但各层之间存有通信接口。

采用三层软件设计架构后,软件系统在可扩展性和可复用性方面得到极大提高,在资源分配策略设计合理运用的同时,软件的性能指标也得到提升,系统的安全性和易管理性也得到改善。

三层体系结构对Web应用的软件架构产生很大影响,促进了基于组件的设计思想,

产生了许多开发Web层次框架的实现技术。较之两级结构来说,三层结构修改和维护上更加方便。目前开发B/S结构的Web应用系统广泛采用这种三层体系结构。

        

         本次项目中,以jsp做为表现层,如下图所示:

                

以Servlet和service做为业务逻辑层,其中Servlet主要是用于接收客户端发送来的各类请求,并选择相应业务处理的service,最后将结果返回客户端。

 

数据持久层则以javaBean来在代码中显示。

二、单例模式

概念:java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。   单例模式有一下特点:   1、单例类只能有一个实例。   

                                           2、单例类必须自己自己创建自己的唯一实例。   

                                           3、单例类必须给所有其他对象提供这一实例。   

        单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

本次项目中数据库链接工具DBUtil就采用了单例模式设计,其中的链接采用了c3p0数据库连接池。

 

三、过滤链模式

因为该系统是用UTF-8,浏览器为ISO_8859_1,且除了登录界面,其他页面必须用户登录。然而在每个Servlet里面都需要进行转码和是否登录的判断,这样不利于我们代码的编写和运用。所以采用一条过滤链模式,共有两个过滤器,一个是判断用户是否登录,一个是用来给整个服务的请求进行转码。

过滤器中需要实现Filter接口,并在doFilter(ServletRequest request, ServletResponse response,         FilterChain chain)中重写该方法。

同时也需要在web.xml中配置接口。

/*是过滤所有的请求服务器的资源。

过滤器会根据在web.xml中的顺序,依次过滤,也可以设置属性,来调整顺序。


  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值