`

java设计模式(3)--工厂模式及其实例

    博客分类:
  • java
阅读更多

一.工厂模式,以数据库的业务逻辑为简单例子,里面有很多不合理的地方,目的是为了阐述对工厂模式的理解。

1.声明接口BaseDAO

/**
 **<p>工厂接口</p>
 **作者:   
 **Blong:http://www.blogjava.net/1504
 **E-mail:yyk1504@163.com
 **QQ:251218333
 **<p>2008-12-16 下午02:08:15</p>
*/
package cn.com.model.factory;

import java.sql.Connection;

public interface BaseDAO
{
    /**数据库的插入方法*/
    public void save(); 
    /**数据库的更新方法*/
    public void update();
    /**数据库的删除方法*/
    public void delete();
}

2.MYSQL具体实现MysqlDAO

*<p>Mysql数据库实现业务逻辑类</p>
 *作者:   
 *Blong:http://www.blogjava.net/1504
 *E-mail:yyk1504@163.com
 *QQ:251218333
 *<p>2008 2008-12-16 </p>
*/
package cn.com.model.factory;

import java.sql.Connection;
import java.sql.DriverManager;

public class MysqlDAO implements BaseDAO
{

    public void delete()
    {
        /**
         *<p>此方法的功能介绍</p>
         *delete
         *MysqlDao
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:16:27</p>
        */
        System.out.println("Mysql在此处实现删除....");
    }

    public void save()
    {
        /**
         *<p>此方法的功能介绍</p>
         *save
         *MysqlDao
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:16:27</p>
        */
        System.out.println("Mysql在此处实现保存....");
    }

    public void update()
    {
        /**
         *<p>此方法的功能介绍</p>
         *update
         *MysqlDao
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:16:27</p>
        */
        System.out.println("Mysql在此处实现更新....");
    }

   
}

3.SQL2000具体实现类

/**
 *<p>MsSql2000数据库实现业务逻辑类</p>
 *作者:   
 *Blong:http://www.blogjava.net/1504
 *E-mail:yyk1504@163.com
 *QQ:251218333
 *<p>2008 2008-12-16 </p>
*/
package cn.com.model.factory;

import java.sql.Connection;
import java.sql.DriverManager;

public class MsSql2000DAO implements BaseDAO
{

    public void delete()
    {
        /**
         *<p>此方法的功能介绍</p>
         *delete
         *MsSql2000DAO
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:21:04</p>
        */
        System.out.println("MsSql2000在此处实现删除....");
    }

    public void save()
    {
        /**
         *<p>此方法的功能介绍</p>
         *save
         *MsSql2000DAO
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:21:04</p>
        */
        System.out.println("MsSql2000在此处实现保存....");
    }

    public void update()
    {
        /**
         *<p>此方法的功能介绍</p>
         *update
         *MsSql2000DAO
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:21:04</p>
        */
        System.out.println("MsSql2000在此处实现更新....");
    }

    }

4.SQL2005具体实现类

/**
 *<p>MsSql2005数据库实现业务逻辑类</p>
 *作者:   
 *Blong:http://www.blogjava.net/1504
 *E-mail:yyk1504@163.com
 *QQ:251218333
 *<p>2008 2008-12-16 </p>
*/
package cn.com.model.factory;

import java.sql.Connection;
import java.sql.DriverManager;

public class MsSql2005DAO implements BaseDAO
{

    public void delete()
    {
        /**
         *<p>此方法的功能介绍</p>
         *delete
         *MsSql2005DAO
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:23:38</p>
        */
        System.out.println("MsSql2005在此处实现删除....");
    }

    public void save() {
        /**
         *<p>此方法的功能介绍</p>
         *save
         *MsSql2005DAO
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:23:38</p>
        */
        System.out.println("MsSql2005在此处实现保存....");
    }

    public void update()
    {
        /**
         *<p>此方法的功能介绍</p>
         *update
         *MsSql2005DAO
         *
         *Author:ASUS_1
         <p>2008 2008-12-16 下午02:23:38</p>
        */
        System.out.println("MsSql2005在此处实现更新....");
    }

   
}

5.ORACLE具体实现类

/**
 **<p>Oracle数据库实现业务逻辑类</p>
 **作者:   
 **Blong:http://www.blogjava.net/1504
 **E-mail:yyk1504@163.com
 **QQ:251218333
 **<p>2008-12-16 下午02:11:59</p>
*/
package cn.com.model.factory;

import java.sql.Connection;
import java.sql.DriverManager;

public class OracleDAO implements BaseDAO
{

    public void delete()
    {
        /**
         *<p>此方法的功能介绍</p>
         *delete
         *OracleDao
         *
         *Author:ASUS_1
         *<p>2008 2008-12-16 下午02:12:59</p>
        */
        System.out.println("Oracle在此处实现删除....");
    }

    public void save()
    {
        /**
         *<p>此方法的功能介绍</p>
         *save
         *OracleDao
         *
         *Author:ASUS_1
         *<p>2008 2008-12-16 下午02:12:59</p>
        */
        System.out.println("Oracle在此处实现保存....");
    }

    public void update()
    {
        /**
         *<p>此方法的功能介绍</p>
         *update
         *OracleDao
         *
         *Author:ASUS_1
         *<p>2008 2008-12-16 下午02:12:59</p>
        */
        System.out.println("Oracle在此处实现更新....");
    }

 
}

6.工厂类

/**
 *<p>数据库业务工厂</p>
 *作者:   
 *Blong:http://www.blogjava.net/1504
 *E-mail:yyk1504@163.com
 *QQ:251218333
 *<p>2008-12-16 </p>
*/
package cn.com.model.factory;
import cn.com.model.factory.*;
public class DaoFactory

{
     public BaseDAO createFactory(String type)
     {  
                 if ("Mysql".equals(type))
                 {  
                     return new MysqlDAO();  
                 }
                 else
                 if ("MsSql2000".equals(type))
                 {  
                     return new MsSql2000DAO();  
                 }
                 else 
                 if ("MsSql2005".equals(type))
                 {  
                     return new MsSql2005DAO();  
                 }
                 else 
                 if ("Oracle".equals(type))
                 {  
                     return new OracleDAO();  
                 }
                     return null;  
             }  
          
             public static void main(String[] args)
             {  
                 DaoFactory creator = new DaoFactory();  
                 BaseDAO mysqlDAO=creator.createFactory("Mysql"); 
                 mysqlDAO.save();
                 mysqlDAO.update();
                 mysqlDAO.delete();
               
                 System.out.println("---------------------------------");
               
                 BaseDAO msSql2000DAO=creator.createProduct("MsSql2000"); 
                 msSql2000DAO.save();
                 msSql2000DAO.update();
                 msSql2000DAO.delete();
               
                 System.out.println("---------------------------------");
               
                 BaseDAO msSql2005DAO=creator.createProduct("MsSql2005"); 
                 msSql2005DAO.save();
                 msSql2005DAO.update();
                 msSql2005DAO.delete();
               
                 System.out.println("---------------------------------");
               
                 BaseDAO oracleDAO=creator.createProduct("Oracle"); 
                 oracleDAO.save();
                 oracleDAO.update();
                 oracleDAO.delete();

             }   
}

分享到:
评论

相关推荐

    java设计模式的应用

    ### Java设计模式的应用 #### 一、引言 在当今快速发展的软件开发领域,Java作为一门功能强大且灵活的语言,不仅拥有丰富的API资源,还能与强大的数据库系统无缝对接。这使得许多开发人员能够以模块化的形式构建...

    java设计模式pdf

    ### Java设计模式详解 #### 一、背景与概念 在软件工程领域,设计模式是一种用于解决常见问题的可重用解决方案。《Java设计模式PDF》是一本由James W. Cooper编写的经典书籍,该书详细介绍了Java编程语言中的设计...

    Java设计模式-图解-附代码

    ### Java设计模式详解 #### 一、概述 设计模式是在软件设计过程中针对常见的问题而提出的通用解决方案。在Java编程中,设计模式可以帮助开发者编写出更易于维护和扩展的代码。根据设计模式的目的不同,通常将其...

    《Java设计模式》课后习题参考答案-刘伟(20180723).pdf

    此外,为了确保参考资料的权威性,建议读者查阅原书《Java设计模式》以获得更加详尽的解释和说明。如果有任何意见或建议,可以通过提供的电子邮箱与作者联系。在学习设计模式的过程中,理解每一个模式的意图、结构、...

    java---------设计模式

    下面将详细探讨Java设计模式中的主要类别及其应用。 1. 创建型模式: - 单例模式:确保一个类只有一个实例,并提供全局访问点。 - 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - ...

    java设计模式实例

    Java设计模式是面向对象编程中的重要概念,它们是软件开发过程中经过反复验证并总结出的最佳实践,用于解决常见...在阅读和实践这些Java设计模式实例时,要注意理解每个模式的核心思想,以及如何在实际项目中灵活运用。

    2020版23种Java设计模式-图解-附代码.pdf

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可重用性、可维护性和灵活性。本教程详细介绍了23种经典的Java设计模式,包括创建型、结构型和行为型模式。下面将对这...

    java设计模式ppt

    下面将详细讨论Java设计模式中的主要类别及其重要知识点。 1. 创建型模式: - 单例模式:确保一个类只有一个实例,并提供全局访问点。 - 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 ...

    Java设计模式代码

    下面将详细阐述Java设计模式中的主要类别及其重要知识点。 1. 创建型模式: - 单例模式:确保一个类只有一个实例,并提供全局访问点。 - 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 ...

    设计模式----Java

    **定义:** 工厂模式是一种常用的创建型设计模式,它提供了创建对象的统一接口,而将实例创建的细节隐藏起来。这种模式允许在不指定具体类的情况下创建对象。 **优点:** 提高系统的可扩展性和灵活性,当需要增加新...

    设计模式java简单实例

    以下将详细讨论标题和描述中提及的一些设计模式及其Java实现。 1. 单例模式(Singleton):TestSingleton 文件可能包含了单例模式的实现。单例模式确保一个类只有一个实例,并提供全局访问点。Java中通常通过私有...

    Java设计模式刘伟书本中模拟考试答案

    在《Java设计模式》这本书的模拟试题及其参考答案中,涉及了多条设计模式的知识点,以及它们的应用场景和实现方法。现在将这些知识点详细地解释如下: 1. 开闭原则(Open-Closed Principle, OCP): 开闭原则是面向...

    java设计模式&java程序设计

    ### Java设计模式与Java程序设计知识点详解 #### 一、设计模式的概念与构成要素 设计模式是一种被广泛接受的解决方案,用于解决软件设计中的常见问题。这种解决方案已经被反复验证为有效的,因此在软件开发过程中...

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个...阅读并理解这些代码有助于深入理解工厂模式及其在Java编程中的应用。

    设计模式-工厂模式

    设计模式是软件开发中的一种最佳实践,它们...了解并掌握工厂模式及其变体,有助于编写出更加健壮、灵活的代码。在实际编码过程中,结合其他设计模式,如单例模式、建造者模式等,可以构建出更高效、可扩展的系统架构。

    面试---1. Java&设计模式.pdf

    #### 五、Java设计模式概述 设计模式是一种在特定情境下解决常见问题的模板或策略,它们帮助开发者更好地组织代码,提高代码的可维护性和可复用性。常见的设计模式包括: - **创建型模式**:关注的是对象的创建...

    java 设计模式-个人总结

    ### Java设计模式——个人总结 #### 一、概述 本文档总结了常见的Java设计模式及其应用,涵盖了十种经典的设计模式,并提供了相应的代码示例。这些设计模式旨在解决软件开发过程中遇到的一系列常见问题,帮助...

    韩顺平_Java设计模式笔记.docx

    ### 韩顺平_Java设计模式笔记知识点详解 #### 1. Java设计模式内容介绍 ##### 1.1.1 先看几个经典的面试题 - **原型设计模式问题** - **UML类图**:原型模式的核心在于定义了一个`Prototype`接口,该接口声明了...

Global site tag (gtag.js) - Google Analytics