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一米陽光 閱讀(2300) 評論(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
          @草包書生
          呵呵,有利有弊的  回復  更多評論
            

          主站蜘蛛池模板: 体育| 青神县| 察雅县| 合水县| 延川县| 教育| 苍南县| 新乡市| 苗栗市| 宣武区| 台北市| 新龙县| 巴塘县| 政和县| 方正县| 高邑县| 电白县| 锦州市| 邛崃市| 宁夏| 屏山县| 江山市| 陇南市| 冀州市| 梁平县| 青龙| 荔波县| 时尚| 左云县| 南平市| 天等县| 泾川县| 麦盖提县| 开原市| 玉屏| 定日县| 荥经县| 横峰县| 蓬莱市| 岫岩| 洱源县|