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

    評論

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

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

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

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類(15)

    隨筆檔案(15)

    收藏夾(1)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 美女羞羞喷液视频免费| 亚洲午夜久久久精品电影院| 亚洲成在人线aⅴ免费毛片| 999国内精品永久免费视频| 亚洲欧洲中文日产| 日本高清在线免费| 亚洲 欧洲 自拍 另类 校园| 女人被男人躁的女爽免费视频| 国产成人精品日本亚洲直接| 99热在线精品免费全部my| 久久乐国产综合亚洲精品| 日本久久久免费高清| 国产精品亚洲а∨无码播放麻豆| 成年女人永久免费观看片| 精品久久久久亚洲| 国产福利电影一区二区三区,亚洲国模精品一区| 亚洲av纯肉无码精品动漫| 亚洲AV成人精品日韩一区18p| 一级毛片试看60分钟免费播放| 伊人婷婷综合缴情亚洲五月| 成在线人视频免费视频| 亚洲成人中文字幕| 大地资源在线观看免费高清| 国产精品亚洲综合一区在线观看| 全黄性性激高免费视频| 你好老叔电影观看免费| 亚洲成人黄色在线| 在线观看免费亚洲| 999zyz**站免费毛片| 亚洲人6666成人观看| 在线观看国产情趣免费视频| a级日本高清免费看| 亚洲综合国产成人丁香五月激情| 国产自产拍精品视频免费看| 中国一级特黄高清免费的大片中国一级黄色片 | 男女啪啪永久免费观看网站| 国产精品永久免费视频| 亚洲码在线中文在线观看| 女人被男人躁的女爽免费视频| 丁香花在线观看免费观看图片| 亚洲中文久久精品无码1|