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

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

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

    創(chuàng)建模式之FactoryMethod——工廠方法模式

    1、簡(jiǎn)介
          和簡(jiǎn)單工廠模式不同,核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創(chuàng)建行為繼承下來(lái),從而可以成為多個(gè)簡(jiǎn)單工廠模式的綜合,進(jìn)而推廣了簡(jiǎn)單工廠模式。

    2、使用場(chǎng)景及能解決的問(wèn)題
          一個(gè)系統(tǒng)要獨(dú)立于它的產(chǎn)品的創(chuàng)建、組合和表示時(shí)
          一個(gè)系統(tǒng)要由多個(gè)產(chǎn)品系列中的一個(gè)來(lái)配置時(shí)
          當(dāng)你要強(qiáng)調(diào)一系列相關(guān)的產(chǎn)品對(duì)象的設(shè)計(jì)以便進(jìn)行聯(lián)合使用時(shí)
          當(dāng)你提供一個(gè)產(chǎn)品類庫(kù),而只想顯示它們的接口而不是實(shí)現(xiàn)時(shí)

    3、類圖

    4、實(shí)例

    首先看看工廠類:

     

    public interface Factory {

      
    public Product create();

    }

     

    接下來(lái)看看工廠相關(guān)的實(shí)現(xiàn)類:

    public class ConcreteFactory1 implements Factory {

       
    public Product create(){

          
    return new ConcreteProduct1();

        }


    }


     

    public class ConcreteFactory2 implements Factory {

       
    public Product create(){

          
    return new ConcreteProduct2();

        }


    }

     

    產(chǎn)品類:

     

    public interface Product {

      
    public void getMessage();

    }

     

    產(chǎn)品相關(guān)的實(shí)現(xiàn)類:

     

    public class ConcreteProduct1 implements Product {

       
    public void getMessage(){

           System.out.print(
    "this is ConcretProduct1.");

        }


    }

     

     

    public class ConcreteProduct2 implements Product {

       
    public void getMessage(){

           System.out.print(
    "this is ConcretProduct2.");

        }


    }

     

    最后看看客戶端的相關(guān)類:

    public class Client {

    private static  Product product1;

       
    private static  Product product2;

       
    private static Factory factory2;

       
    private static Factory factory1;

    public static void main(String[] args){

    factory1 
    = new ConcreteFactory1();

           factory2 
    = new ConcreteFactory2();

    product1
    = factory1.create();

           product1.getMessage();

        product2
    = factory2.create();

           product2.getMessage();

       }


    }


    5、優(yōu)缺點(diǎn)

          完全支持-原則,如果需要增加一個(gè)新的產(chǎn)品,需要向系統(tǒng)中加入一個(gè)這個(gè)產(chǎn)品類以及相應(yīng)的工廠類,沒(méi)有必要修改客戶端。

     

    posted on 2008-05-28 13:58 云淡風(fēng)清 閱讀(250) 評(píng)論(0)  編輯  收藏 所屬分類: Design Patterns

    <2008年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆分類(15)

    隨筆檔案(15)

    收藏夾(1)

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日本免费中文视频| 日美韩电影免费看| 亚洲日韩一区二区一无码| 免费在线观看一级毛片| 免费成人在线视频观看| 亚洲国产视频久久| 久久久久久A亚洲欧洲AV冫| 最近中文字幕免费mv在线视频| 亚洲狠狠成人综合网| 超清首页国产亚洲丝袜| 97碰公开在线观看免费视频| 免费的黄色网页在线免费观看| 亚洲AV中文无码乱人伦下载| 岛国片在线免费观看| 久久国产美女免费观看精品 | 亚洲国产精品综合久久2007| 国产资源免费观看| 久久精品私人影院免费看| 亚洲国产成人无码AV在线影院| 亚洲乱码精品久久久久..| 性一交一乱一视频免费看 | 国产无遮挡又黄又爽免费视频| 你是我的城池营垒免费看| 亚洲日韩一区精品射精| 国产V亚洲V天堂无码久久久| 国产麻豆剧传媒精品国产免费| 伊人久久免费视频| 一级一看免费完整版毛片| 亚洲高清中文字幕免费| 久久夜色精品国产亚洲AV动态图| 免费一级特黄特色大片在线| 国产桃色在线成免费视频 | 午夜时刻免费入口| 无码国产精品一区二区免费3p| 视频免费1区二区三区| 亚洲乱码在线卡一卡二卡新区| 亚洲日本中文字幕区| 中文字幕第一页亚洲| 在线观看免费精品国产| 成年人免费的视频| 一区二区三区福利视频免费观看|