欢迎来到天天文库
浏览记录
ID:42092312
大小:33.00 KB
页数:6页
时间:2019-09-07
《简单工厂模式在网上购物系统中的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、简单工厂模式在网上购物系统中的应用摘要:在设计与开发网上购物系统各个模块的过程中,综合、灵活地使用了Java的常用设计模式。其中,为了提供对不同数据库系统的良好支持,应用简单工厂模式实现了产品管理模块的相关功能,有效增强了系统的可扩展性和可维护性。关键词:设计模式;简单工厂模式;数据库系统中图分类号:TP311.10产品管理是网上购物系统中最重要的模块之一,前台用户和后台管理员的大部分操作都会涉及产品模块的具体功能。根据客户对系统所支持的用户量、开发成本等不同因素的实际需求,系统定制时有可能会选择不同的数据库系统作为数据源,这就要求我们开发的系统需要提
2、供对不同数据库系统的良好支持。因此,在数据源发生改变,例如,从MySQL数据库变更为SQLServer的时候,应能使得只需要修改少量的代码或配置文件,就可以实现购物网站对不同数据库系统的支持。1设计模式简介设计模式(DesignPattern)是一套被反复使用,并且经过分类编目的代码设计经验总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性。设计模式从应用的角度被分为三个大的类型,分别是创建型设计模式、结构型设计模式和行为型设计模式。创建型模式,就是用来创建对象的模式,它抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和
3、表示它的那些对象。简单工厂模式属于创建型模式,又被称为静态工厂方法(StaticFactoryMethod)模式。它是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。2简单工厂模式在产品管理模块中的应用2.1产品管理模块概述产品管理模块采用三层模型进行开发。DA0层负责数据库的相关操作,向下直接访问数据库系统,同时向上层的ProductManager类提供各种操作数据库的服务;ProductManager类位于业务逻辑层,向下调用DA0层提供的各种接口,向上给前台的页面展
4、示提供各种服务;前台的jsp页面直接调用ProductManager类提供的各种方法实现丰富的展示效果。采用分层的模型虽然增加了一定的代码开发工作量,但分层的方式带来的好处也是显而易见的。不但有效降低了各个模块之间的耦合性,很好的实现了相关类内部的封装,而且提高了代码的可扩展性和可维护性,当某一层服务的内部逻辑发生改变时,对外提供的接口不需要改变,使需要修改的代码量减至最少。2.2简单工厂模式的引入项目初期,鉴于客户对系统所支持的用户量要求不高,并且开发成本也比较低,项目组选择了MySQL数据库。相应的,对于产品管理模块的设计来说,最基本的实现方式是在
5、ProductDAO类中,提供对MySQL数据库进行操作的各种方法,程序中涉及的SQL语句也是只有在MySQL数据库下才可以运行的。当然,考虑到系统后续的扩展性,以及应能提供更强大的数据管理能力和更好的操作性能,可能会选择诸如SQLServer.Oracle等高端数据库产品。这种情况下,必然要修改ProductDAO类中的大量代码,系统的灵活性是很差的。Java程序设计提倡“面向接口”编程,即控制反转。因此,我们重新设计了ProductDAO类,将其抽象为一个接口,而真正实现对不同数据库系统进行具体操作的代码,放在ProductMysqlDAO、Pro
6、ductSQLServerDAO等实现了ProductDAO接口的类当中。程序优化到这一步,已经初步实现了支持不同数据库系统的功能。ProductManager类中将持有ProductDAO接口的一个引用,当网上购物系统所使用的数据源变更时,我们只需在ProductManager类的setProductDAO方法中,实例化不同的子类对象即可。但实际上,代码还可以继续优化使得程序的灵活性得到进一步的提高。我们采用了简单工厂设计模式。选择工厂模式的好处在于,可以更加方便的更改应用程序,方便对系统进行扩展。例如,当我们需要在ProductDAO接口的基础上再
7、增加一个实现了该接口,并且支持其它数据库系统的子类时,在之前的设计中需要把以前使用ProductDAO接口的地方都修改为创建一个新的子类对象,这样做显然也增加了模块间的耦合度。通过使用工厂模式,统一管理对象的创建过程,并且在我们的代码中只要做一处修改就可以了。我们构建了一个工厂类ProductDAOFactory,对外提供createProductDAO方法,把创建ProductDAO接口对象的处理封装在该简单工厂的内部。对于ProductManager类而言,不需要再了解ProductDAO的实现细节,工厂类ProductDAOFactory统一管理
8、ProductDAO对象的创建过程,其它类只需要调用它的createProductDAO方法即
此文档下载收益归作者所有