<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)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 女人被男人躁的女爽免费视频| 亚洲日本在线免费观看| 四虎永久精品免费观看| 亚洲欧美日韩综合久久久| 免费观看AV片在线播放| 亚洲中文字幕无码中文| 午夜a级成人免费毛片| 亚洲色偷偷色噜噜狠狠99| 精品免费久久久久久成人影院| 亚洲无人区码一二三码区别图片| 成人免费毛片观看| AV激情亚洲男人的天堂国语| 国产免费观看青青草原网站| 丰满妇女做a级毛片免费观看 | 国产精品视_精品国产免费 | 中国在线观看免费高清完整版| 亚洲精品乱码久久久久久下载| 黄色免费网站网址| 亚洲国产av玩弄放荡人妇| 国产99视频精品免费视频7| 青青草国产免费国产是公开| 在线亚洲97se亚洲综合在线| 日韩内射激情视频在线播放免费| 亚洲伊人精品综合在合线| 蜜桃精品免费久久久久影院| 一级A毛片免费观看久久精品 | 亚洲美女视频免费| 国产乱码免费卡1卡二卡3卡| 爱爱帝国亚洲一区二区三区| 伊伊人成亚洲综合人网7777| 日韩免费人妻AV无码专区蜜桃| 亚洲一区二区三区成人网站| AV在线亚洲男人的天堂| 中国xxxxx高清免费看视频| 精品亚洲福利一区二区| 国产精品亚洲A∨天堂不卡 | 四虎免费永久在线播放| 国产一级一毛免费黄片| 亚洲一级毛片免费观看| 亚洲国产成人乱码精品女人久久久不卡 | 最近中文字幕免费2019|