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

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

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

    創(chuàng)建模式之SimpleFactory——簡單工廠模式

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

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

    public interface Product {
       
    public void doSth();
    }

       
        再看看和他關(guān)聯(lián)的具體的類:
    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、優(yōu)缺點
        優(yōu)點如下:
        客戶類和工廠類分開。消費者任何時候需要某種產(chǎn)品,只需向工廠請求即可。消費者無須修改就可以接納新產(chǎn)品。
        缺點也很明顯:
        當(dāng)產(chǎn)品修改時,工廠類也要做相應(yīng)的修改。有點違背了開—閉原則。
       

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

    評論

    # re: 創(chuàng)建模式——簡單工廠模式 2008-05-16 15:37 網(wǎng)上買書

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

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

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類(15)

    隨筆檔案(15)

    收藏夾(1)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本高清免费不卡视频| 免费一区二区无码视频在线播放 | WWW亚洲色大成网络.COM | 亚洲一区二区三区在线| 日本特黄a级高清免费大片| 国产成人精品免费大全| 亚洲资源在线视频| 免费在线观看中文字幕| 91精品手机国产免费| 国产亚洲蜜芽精品久久| 免费一看一级毛片人| 少妇人妻偷人精品免费视频| 亚洲av纯肉无码精品动漫| 欧洲美熟女乱又伦免费视频| 99在线视频免费观看| 亚洲成AV人在线播放无码| 在线播放免费播放av片| 黄色片免费在线观看| 香蕉视频免费在线播放| 综合亚洲伊人午夜网 | 啦啦啦中文在线观看电视剧免费版| 欧洲美女大片免费播放器视频| 亚洲春黄在线观看| 亚洲啪啪AV无码片| 国产成人免费片在线观看| 九九九国产精品成人免费视频| 亚洲成年人电影在线观看| 国产亚洲欧洲Aⅴ综合一区| 免费女人高潮流视频在线观看 | 精品丝袜国产自在线拍亚洲| 特级淫片国产免费高清视频| 久操视频在线免费观看| 一级人做人a爰免费视频| 亚洲 暴爽 AV人人爽日日碰| 亚洲一区精品中文字幕| 免费视频中文字幕| 国产成人精品免费午夜app| 无码人妻久久一区二区三区免费| 又粗又长又爽又长黄免费视频| 亚洲黄色网站视频| 亚洲无人区午夜福利码高清完整版 |