2025-02-10

一.工廠模式,以數據庫的業務邏輯為簡單例子,裡面有很多不合理的地方,目的是為瞭闡述對工廠模式的理解。

1.聲明接口BaseDAO

/**
 **<p>工廠接口</p>
 **作者:   
 **Blong:https://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:https://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:https://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:https://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:https://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:https://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();

             }   
}

作者“l12052124”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *