waysun一路阳光

不轻易服输,不轻言放弃.--心是梦的舞台,心有多大,舞台有多大。踏踏实实做事,认认真真做人。

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  167 随笔 :: 1 文章 :: 64 评论 :: 0 Trackbacks

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

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();

             }    
}

 

posted on 2008-12-16 16:50 weesun一米阳光 阅读(2266) 评论(4)  编辑  收藏 所属分类: 23种编程模式

评论

# re: java设计模式(1)--工厂模式及其实例【原创】 2008-12-16 16:53 草包书生
坚决反对用mysql,前一段时间用mysql弄德我哭笑不得。还是用sql好。  回复  更多评论
  

# re: java设计模式(1)--工厂模式及其实例【原创】 2008-12-16 21:23
楼上的你太太太夸张了吧?
习惯问题  回复  更多评论
  

# re: java设计模式(1)--工厂模式及其实例【原创】 2008-12-17 09:36 caiban
不能因为你不习惯就说mysql不好吧
那我不习惯SQL,是否也可以说:坚决反对用mssql,前一段时间用mssql弄德我哭笑不得。还是用mysql好。呵呵  回复  更多评论
  

# re: java设计模式(1)--工厂模式及其实例【原创】 2011-12-16 23:16 chzhxiang
@草包书生
呵呵,有利有弊的  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: