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

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

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

    創建模式之FactoryMethod——工廠方法模式

    1、簡介
          和簡單工廠模式不同,核心工廠類不再負責所有產品的創建,而是將具體創建的工作交給子類去做,成為一個抽象工廠角色,僅負責給出具體工廠類必須實現的接口,而不接觸哪一個產品類應當被實例化這種細節。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創建行為繼承下來,從而可以成為多個簡單工廠模式的綜合,進而推廣了簡單工廠模式。

    2、使用場景及能解決的問題
          一個系統要獨立于它的產品的創建、組合和表示時
          一個系統要由多個產品系列中的一個來配置時
          當你要強調一系列相關的產品對象的設計以便進行聯合使用時
          當你提供一個產品類庫,而只想顯示它們的接口而不是實現時

    3、類圖

    4、實例

    首先看看工廠類:

     

    public interface Factory {

      
    public Product create();

    }

     

    接下來看看工廠相關的實現類:

    public class ConcreteFactory1 implements Factory {

       
    public Product create(){

          
    return new ConcreteProduct1();

        }


    }


     

    public class ConcreteFactory2 implements Factory {

       
    public Product create(){

          
    return new ConcreteProduct2();

        }


    }

     

    產品類:

     

    public interface Product {

      
    public void getMessage();

    }

     

    產品相關的實現類:

     

    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.");

        }


    }

     

    最后看看客戶端的相關類:

    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、優缺點

          完全支持-原則,如果需要增加一個新的產品,需要向系統中加入一個這個產品類以及相應的工廠類,沒有必要修改客戶端。

     

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

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

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類(15)

    隨筆檔案(15)

    收藏夾(1)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品综合在线影院| 亚洲精彩视频在线观看| jzzijzzij在线观看亚洲熟妇| 91在线品视觉盛宴免费| 亚洲av无码片在线观看| 国产精品无码免费播放| 亚洲国产精品自在自线观看| 国产裸模视频免费区无码| 国产亚洲福利精品一区二区| 免费看男女下面日出水视频| 在线播放国产不卡免费视频| 亚洲午夜福利精品无码| 国产性生大片免费观看性| 亚洲影院在线观看| 国产人在线成免费视频| 亚洲人成欧美中文字幕| 国产91在线免费| 最新亚洲成av人免费看| 精品亚洲国产成AV人片传媒| 日本精品人妻无码免费大全| 国产精品亚洲а∨天堂2021 | 亚洲欧洲另类春色校园网站| 永久免费毛片在线播放| 国产亚洲精品成人久久网站 | 成年女人18级毛片毛片免费观看| 亚洲精品456人成在线| 可以免费观看一级毛片黄a| 中文字幕在线免费视频| 亚洲欧洲精品一区二区三区| 精品免费国产一区二区| 两个人看的www视频免费完整版| 亚洲Aⅴ无码专区在线观看q| 国产三级在线观看免费| 久久免费国产精品| 亚洲AV无码一区二区三区在线 | 亚洲香蕉成人AV网站在线观看| 亚洲黄色免费网站| 免费国产黄网站在线看| 亚洲黄色在线网站| 亚洲精品高清在线| 67194熟妇在线永久免费观看|