<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 云淡風清 閱讀(1520) 評論(1)  編輯  收藏 所屬分類: Design Patterns

    評論

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

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

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

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類(15)

    隨筆檔案(15)

    收藏夾(1)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线A级毛片无码免费真人| 337p日本欧洲亚洲大胆裸体艺术| 999在线视频精品免费播放观看| 免费看美女让人桶尿口| 亚洲国产精品福利片在线观看| 亚洲伊人精品综合在合线| 亚洲成av人片在线天堂无| 日本高清免费观看| 亚洲不卡AV影片在线播放| 久久亚洲私人国产精品vA| 牛牛在线精品观看免费正 | 亚洲欧洲免费无码| 亚洲女初尝黑人巨高清| 色欲aⅴ亚洲情无码AV| 无码av免费毛片一区二区| 国产AV无码专区亚洲AV男同| 中文字幕乱码免费看电影| jjzz亚洲亚洲女人| 亚洲综合小说另类图片动图| 最好看最新的中文字幕免费| 亚洲熟女乱综合一区二区| 亚洲成av人无码亚洲成av人| 亚洲国产一成久久精品国产成人综合| 亚洲娇小性xxxx色| 222www免费视频| 久久精品国产精品亚洲艾草网 | 妞干网手机免费视频| 另类专区另类专区亚洲| 成人人免费夜夜视频观看| 日本亚洲高清乱码中文在线观看| 久久久久亚洲精品男人的天堂| 处破女第一次亚洲18分钟| 亚洲乱码一区二区三区在线观看| 一级成人毛片免费观看| 亚洲高清最新av网站| 毛片在线播放免费观看| 亚洲AV无码国产精品色午友在线| 国产免费一区二区三区| 日韩在线观看视频免费| 亚洲第一福利网站在线观看| 一区二区三区四区免费视频|