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

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

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

    創建模式之SimpleFactory——簡單工廠模式

    1、簡介
        簡單工廠模式是一個對象創建型模式,它定義了一個用于創建對象的接口,讓子類決定實例化哪一個類,它使得一個類的實例化延遲到了子類。
    2、使用場景
        為什么要使用工廠模式,它能幫助解決什么問題?面向對象的封裝(Encapsulation)和分派(Delegation)告訴我們,盡量將長的代碼分派“切割”成每段,將每段再“封裝”起來(減少段和段之間偶合聯系性),這樣就會將風險分散,以后如果需要修改,只要更改每段,不會再發生牽一動百的事情了。使用工廠模式,能夠將創建實例和使用實例分開,封裝了使用者將得到那些具體類的信息,并且隱藏了這些類的實例是如何被創建和放在一起的。
    3、類圖

    4、實例
        先看看Product接口:
    package simpleFactory;

    public interface Product {
       
    public void doSth();
    }

       
        再看看和他關聯的具體的類:
    package simpleFactory;

    public class ConcreteProduct1 implements Product {
        
    public void doSth(){
            System.out.print(
    "this is product1");
        }
    }

    package simpleFactory;

    public class ConcreteProduct2 implements Product {
            
    public void doSth(){
            System.out.print(
    "this is product2");
        }
    }

    package simpleFactory;

    public class ConcreteProduct3 implements Product {
            
    public void doSth(){
            System.out.print(
    "this is product3");
        }
    }

    package simpleFactory;

    public class ConcreteProduct4 implements Product {
            
    public void doSth(){
            System.out.print(
    "this is product4");
        }
    }

        最后是工廠方法的核心類:
    package simpleFactory;

    public class Creator {
        
    public static Product productFactory(int which) {

            
    switch(which){
            
    case 1:
                
    return new ConcreteProduct1();
                
    break;
            
    case 2:
                
    return new ConcreteProduct2();
                
    break;
            
    case 3:
                
    return  new ConcreteProduct3();
                
    break;
            
    case 4:
                
    return  new ConcreteProduct4();
                
    break;
            
    default:
                
    return null;
            }
        }   
    }

    5、優缺點
        優點如下:
        客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。
        缺點也很明顯:
        當產品修改時,工廠類也要做相應的修改。有點違背了開—閉原則。
       

    posted on 2008-05-13 16:36 云淡風清 閱讀(1515) 評論(1)  編輯  收藏 所屬分類: Design Patterns

    評論

    # re: 創建模式——簡單工廠模式 2008-05-16 15:37 網上買書

    為什么要使用工廠模式,它能幫助解決什么問題?分析的不錯  回復  更多評論   

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

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類(15)

    隨筆檔案(15)

    收藏夾(1)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av最新在线观看网址| 亚洲欧洲日韩不卡| 亚洲av乱码中文一区二区三区| 精品在线免费观看| 国产精品国产亚洲精品看不卡| 中文毛片无遮挡高清免费| 伊人婷婷综合缴情亚洲五月| 一级特黄录像免费播放中文版| 免费一级毛片在线播放视频| 国产亚洲综合一区二区三区| 亚洲一区二区三区免费视频| 国产亚洲福利一区二区免费看| 成年人在线免费观看| 亚洲精品一卡2卡3卡四卡乱码| 精品国产免费观看一区| 色偷偷亚洲第一综合| 免费国产不卡午夜福在线| 中美日韩在线网免费毛片视频| 亚洲熟妇av一区二区三区| 成人自慰女黄网站免费大全| 国产AV无码专区亚洲Av| 一个人免费日韩不卡视频| 亚洲成无码人在线观看| 成人片黄网站色大片免费| 日韩亚洲翔田千里在线| 国产精品亚洲αv天堂无码| 无码人妻精品中文字幕免费| 亚洲av成人综合网| 免费永久在线观看黄网站| 国产精品九九久久免费视频| 亚洲伦理一区二区| 毛色毛片免费观看| 精品在线免费视频| 亚洲av无码成h人动漫无遮挡| 久久成人国产精品免费软件| 久久亚洲精品无码av| 亚洲中文字幕日产乱码高清app | 国产精品亚洲自在线播放页码| 免费高清在线影片一区| 亚洲免费一区二区| 亚洲国产综合精品|