憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks

          工廠模式其實是java開發中最常用的模式之一,我們在獲取數據庫連接的時候,經常使用工廠模式;

          1、結構圖:

          2、目的:

          定義一個用于創建對象的接口,讓接口子類通過工廠方法決定實例化哪一個類;
          3、適用性:
          a) 當一個類希望由它的子類來指定它所創建的對象的時候;
          b) 當一個類不知道自己將創建什么樣的對象類的時候(有多種對象類可以選擇);
          c) 當類將創建對象的職責委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時候;
          4、java實現:

          工廠類(Factory.java):
          public class Factory {
          ??? public Window CreateWindow (String type) {
          ????? Class cls = null;
          ????? Window win = null;
          ????? try{
          ??????? cls = Class.forName(type);
          ??????? win =(Window)cls.newInstance();
          ????? }catch(Exception ex)
          ????? {
          ??????? ex.printStackTrace();
          ????? }
          ????? return win;
          ??? }

          ??? public static void main(String[] args) {
          ??????? Factory myFactory = new Factory();
          ??????? Window myBigWindow = myFactory.CreateWindow("WindowBig");
          ??????? myBigWindow.func();

          ??????? Window mySmallWindow = myFactory.CreateWindow("WindowSmall");
          ??????? mySmallWindow.func();
          ??? }
          }
          ----------------
          window接口(Window.java)
          public abstract class Window {
          ??? public abstract void func();
          }
          ----------------
          兩個子類中的第一個WindowBig.java:
          public class WindowBig extends Window {
          ??? public void func() {
          ??????? System.out.println("This is Big Window !");
          ??? }
          }
          兩個子類中的第二個WindowSmall.java:
          public class WindowSmall extends Window {
          ??? public void func() {
          ??????? System.out.println("This is Small Window !");
          ??? }
          }



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=271432


          [收藏到我的網摘]?? 趙小刀發表于 2005年01月28日 10:08:00
          posted on 2007-01-04 09:17 二胡 閱讀(160) 評論(2)  編輯  收藏

          評論

          # re: 轉 設計模式整理(二) 之 工廠模式 2007-01-04 14:47 二胡
          在xuyongfeng的專欄中看到如下內容,感覺不錯!就轉貼過來了!
          簡單工廠:把創建對象的工作封裝到一個類的方法中去。
          工廠方法:在抽象類中定義創建對象的接口,創建對象的具體工作推遲到子類
          中去。
          抽象工廠:在抽象類中提供一組創建一系列相關或相互依賴對象的接口。
          抽象工廠是由多個工廠方法組成的。
          抽象工廠創建一組對象,而工廠方法只是創建一個對象。
          工廠方法通常還和template設計模式一起使用。


            回復  更多評論
            

          # re: 轉 設計模式整理(二) 之 工廠模式 2007-01-04 14:53 二胡
          工廠模式有三種 分別為: 簡單工廠,工廠方法,抽象工廠

          1:簡單工廠
          一個具體的全能類。負責產生所有的子類,根據傳的參數進行比較,產生相對應的子類。
          2:工廠方法
          一個抽象的類或是接口。他只定義了方法并沒有實現。具體由繼承或是實現的子類來完成
          3:抽象工廠
          也是一個抽象的類。與工廠方法并沒有多大的區別。關鍵在于創建對象的復雜程度。
          轉貼于蔣德的JAVA專欄

            回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 项城市| 太仆寺旗| 扎囊县| 图们市| 贺州市| 大丰市| 仁布县| 开化县| 白水县| 琼中| 西平县| 阳东县| 安多县| 碌曲县| 青河县| 安阳市| 新闻| 汉中市| 康乐县| 商城县| 和林格尔县| 衢州市| 资兴市| 西乌| 房山区| 四川省| 临清市| 佛学| 西乌珠穆沁旗| 宜宾市| 唐山市| 淮北市| 大邑县| 贵阳市| 和静县| 彰化市| 西盟| 晋江市| 凤冈县| 蓝田县| 普宁市|