工厂模式是设计模式中较简单的模式,但在项目的开发过程中会常常用到它。下面分析下工厂模式,提出一种在项目中比较可行的工厂方法的实现。同时,结合单例模式,构建DAO设计模式。
工厂模式
1、工厂模式的组成
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。它由三种角色组成:
抽象产品角色(Product):它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
具体产品角色(Concert Product):工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
工厂类角色(Creator):这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。
2、工厂模式UML图
3、简单代码的实现
- interface Fruit{
- public void grow();
- public void eat();
- }
-
- pulbic class Apple implements Fruit{
- public void grow(){
- System.out.println("苹果在生长...");
- }
- public void eat(){
- System.out.println("吃苹果...");
- }
- }
-
- public class Orange implements Fruit{
- public void grow(){
- System.out.println("橘子在生长...");
- }
- public void eat(){
- System.out.println("吃橘子...");
- }
- }
-
- pulbic class Factory{
- public static Fruit getFruit(String name){
- Fruit f = null;
- if ("apple".equal(name)){
- f = new Apple();
- }else if (("orange".equal(name)){ ){
- f = new Orange();
- }
- return f;
- }
- }
-
- public class Clinet{
- public static void main(String args[]){
- Fruit f = Factory.getFruit(“apple”);
- f.grow();
- }
- }
从开闭原则上来分析下简单工厂模式。当增加了一种水果时候,只要符合抽象产品制定的合同,那么只要通知工厂类知道就可以被客户使用了。那么对于产品部分来说,它是符合开闭原则的——对扩展开放、对修改关闭;但是工厂部分好像不太理想,因为每增加一一种水果,都要在工厂类中增加相应的商业逻辑和判断逻辑,这显然是违背开闭原则的。
为了符合开闭原则,同时考虑以后代码的维护性,我们采用java的反射机制及propertie综合应用,使得配置与程序分离,程序的修改只与配置文件有关,某一部分的修改不影响其他程序。
4、改造后的代码
DAO模式
DAO设计模式是在项目开发过程中一个常见的设计模式,我们将在随后的文章中具体讲解,现在只贴出具体实现代码,以供参考。
典型实现代码
目录结构
分享到:
相关推荐
在这个“工厂模式DAO模式操作数据库小例子”中,我们可以预期看到以下结构: 1. 数据库连接配置:通常会有一个配置类或.properties文件来存储数据库连接信息,如URL、用户名和密码。 2. 数据库接口:定义了对数据库...
DAO模式主要用于数据库操作,它为数据访问提供了一个抽象层,使得业务逻辑与数据存储机制分离。在这个购物车应用中,DAO可能包含了获取、添加、更新和删除商品数据的方法。比如,一个`ProductDAO`类可以包含`...
DAO(Data Access Object)设计模式是一种在软件工程中常见的用于处理数据访问的模式,它将业务逻辑和数据访问逻辑分离,使得系统更加模块化,提高了代码的可复用性和可测试性。在这个“DAO设计模式(工厂+代理)”...
在Java开发中,DAO模式通常与其他设计模式结合使用,如工厂模式(创建DAO实例)、策略模式(根据策略选择不同的数据访问方式)、单例模式(管理全局唯一的DAO实例)等,以进一步提升系统的灵活性和可维护性。...
DAO模式用于封装对数据库的访问,减少业务层与数据库的直接耦合。而DAO工厂模式则进一步抽象了DAO的创建过程,提供了一种灵活的方式来实例化不同类型的DAO,以操作不同的数据表或数据源。 1. **DAO(数据访问对象)...
在实际的J2EE项目中,DAO模式常与Spring框架结合使用,Spring的DAO支持模块提供了对各种数据访问技术的抽象,比如JDBC、Hibernate、MyBatis等。此外,Spring的事务管理也与DAO模式密切相关,可以统一处理事务的开始...
Struts、DAO、工厂模式、委托模式以及值对象模式是Java Web开发中常见的设计模式和技术栈,它们在构建高效、可维护的系统中扮演着重要角色。以下将详细阐述这些概念及其相互作用。 **Struts** 是一个开源的MVC...
DAO模式的核心思想是创建一个专门的接口或抽象类,用于执行对数据源的操作,这样业务组件就可以通过调用DAO接口来与数据库或其他数据存储进行交互,而无需直接了解这些底层的实现细节。 在J2EE环境中,DAO模式特别...
在Java企业级开发中,"核心J2EE模式-DAO(数据访问对象)"是一个至关重要的设计模式,它主要用于分离业务逻辑...在实际开发中,结合其他设计模式,如工厂模式和抽象工厂模式,可以进一步增强DAO模式的灵活性和适应性。
- **易于测试**:由于DAO模式将数据访问逻辑与业务逻辑分离,因此可以更容易地为业务逻辑层编写单元测试。 **组成部分:** 1. **DAO接口**:定义了所有数据访问操作的抽象方法,如添加、删除、修改、查询等。 2. **...
这个压缩包文件"DAO设计模式辅助资料"显然是为了帮助开发者更好地理解和应用DAO模式。下面,我们将深入探讨DAO设计模式的核心概念、实现方式以及它在实际开发中的应用。 DAO设计模式的基本思想是为数据库操作创建一...
DAO设计模式可以通过采用抽象工厂和工厂方法模式来变得非常的灵活. 当底层数据存储实现不需要发生改变时,该策略可以使用工厂方法设计模式实现,来产生应用中所需的DAO. 当底层数据储存实现不得不发生变化的时候, ...
在实际应用中,DAO模式可以与Service层配合,Service层调用DAO来执行数据操作,并处理业务逻辑。此外,现代的框架如Spring提供了对DAO的支持,通过依赖注入(DI)和面向切面编程(AOP),可以更方便地管理事务和...
1. **DAO模式并非引入新功能**:DAO模式的本质是对数据访问的封装,它将数据操作的细节隐藏,使得业务逻辑层可以与数据存储的具体实现解耦。学习DAO模式,实际上是在学习如何利用设计模式解决特定问题的思维方式。 ...
DAO模式常常与其他设计模式结合使用,如工厂模式用于创建DAO实例,策略模式用于动态选择不同的数据访问策略,以及代理模式来实现事务管理或缓存功能。 9. **最佳实践** 实现DAO时,应遵循一些最佳实践,如避免在...
在这个实验报告中,学生周媛娣通过Java Web开发实践,使用DAO模式实现了对数据库的操作,包括增加、查询等基本功能。 1. **DAO模式的理解**: DAO模式的核心思想是创建一个对象(DAO),该对象封装了对数据库的...
总结一下,这个项目结合了DAO模式、抽象工厂模式和JavaScript技术,实现了多数据库连接的能力。在后端,通过DAO模式封装数据库操作,抽象工厂模式用于动态创建不同数据库的DAO实例;在前端,可能使用JavaScript进行...
在本项目"JSP_javabean_DAO_面向接口编程_工程模式.rar"中,我们将探讨如何结合JavaBean、DAO(Data Access Object)、面向接口编程以及工厂模式来构建一个高效且可维护的Web应用程序。 首先,JavaBean是Java中的一...
在这个基于DAO工厂模式的三层架构示例项目中,我们将深入探讨每一层的功能以及DAO工厂模式在其中的作用。 **表现层(Presentation Layer)** 表现层是用户与系统交互的界面,它负责接收用户的输入,处理用户的请求...