<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    憨厚生

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

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

    工廠模式其實(shí)是java開發(fā)中最常用的模式之一,我們在獲取數(shù)據(jù)庫連接的時候,經(jīng)常使用工廠模式;

    1、結(jié)構(gòu)圖:

    2、目的:

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

    工廠類(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


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

    評論

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


      回復(fù)  更多評論
      

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

    1:簡單工廠
    一個具體的全能類。負(fù)責(zé)產(chǎn)生所有的子類,根據(jù)傳的參數(shù)進(jìn)行比較,產(chǎn)生相對應(yīng)的子類。
    2:工廠方法
    一個抽象的類或是接口。他只定義了方法并沒有實(shí)現(xiàn)。具體由繼承或是實(shí)現(xiàn)的子類來完成
    3:抽象工廠
    也是一個抽象的類。與工廠方法并沒有多大的區(qū)別。關(guān)鍵在于創(chuàng)建對象的復(fù)雜程度。
    轉(zhuǎn)貼于蔣德的JAVA專欄

      回復(fù)  更多評論
      


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 欧美大尺寸SUV免费| 免费永久看黄在线观看app| 亚洲精品亚洲人成在线| 成人亚洲国产精品久久| 国产L精品国产亚洲区久久| 亚洲精品在线免费看| 亚洲第一综合天堂另类专| 亚洲午夜久久久久久久久久| 青青草97国产精品免费观看| 国产伦一区二区三区免费| 国产一区二区三区免费| 亚洲国产成人精品无码区花野真一 | 99久久99久久免费精品小说| 亚洲欧美日韩中文无线码| 亚洲精品你懂的在线观看| 91成人免费福利网站在线| 亚洲精品狼友在线播放| 成年18网站免费视频网站| 成人免费区一区二区三区 | 国产成人99久久亚洲综合精品| 四虎1515hh永久久免费| 男人和女人高潮免费网站| 亚洲国产视频网站| 国产午夜亚洲精品午夜鲁丝片| 99久久免费国产特黄| 中文日韩亚洲欧美制服| 亚洲av无码一区二区三区不卡 | 国产精品高清全国免费观看| 99久9在线|免费| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲精华液一二三产区| 亚洲Av永久无码精品一区二区| 亚洲欧洲日产国码一级毛片| 精品久久久久国产免费| 一级毛片在线免费看| 一级免费黄色毛片| 亚洲av无码一区二区三区四区| 亚洲欧洲国产经精品香蕉网| 亚洲精品高清无码视频| 亚洲精品高清在线| 免费看国产曰批40分钟|