waysun一路陽光

          不輕易服輸,不輕言放棄.--心是夢的舞臺,心有多大,舞臺有多大。踏踏實實做事,認認真真做人。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 64 評論 :: 0 Trackbacks

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

          1.聲明接口BaseDAO

          /**
           **<p>工廠接口</p>
           **作者:    
           **Blong:http://www.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/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一米陽光 閱讀(2306) 評論(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
          @草包書生
          呵呵,有利有弊的  回復  更多評論
            

          主站蜘蛛池模板: 太仆寺旗| 宣汉县| 泸溪县| 长岛县| 长沙市| 宜州市| 合肥市| 台江县| 丹寨县| 临桂县| 杭锦旗| 新密市| 海宁市| 思南县| 湾仔区| 元氏县| 南京市| 太原市| 南汇区| 合作市| 南宫市| 乃东县| 东莞市| 瑞昌市| 毕节市| 万安县| 北海市| 土默特右旗| 拉萨市| 旺苍县| 南漳县| 和田县| 惠东县| 沙雅县| 杨浦区| 剑阁县| 巴青县| 乌鲁木齐县| 卢湾区| 泗阳县| 中山市|