学生管理系统的几个设计模式
本次学生管理系统,主要采用的是使用MVC模式,单例模式,和过滤链模式进行整个项目的设计以及数据库的设计。下面简单介绍下,经过这次项目对这几种设计模式的了解。一、MVC设计模式首先,先介绍下MVC设计。MVC全名是Model View Controller,是模型(model数据持久层)-视图(view表现层)-控制器(controller业务逻辑层)的缩写,一种软件设计典范,用一种业务
本次学生管理系统,主要采用的是使用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中的顺序,依次过滤,也可以设置属性,来调整顺序。
更多推荐
所有评论(0)