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

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

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

    編程之道

    無論是批評的,贊揚(yáng)的,指著的都請EMAIL給我,你的建議將是我前進(jìn)的動力! 聯(lián)系我

    靜態(tài)工廠模式

    又稱簡單工廠模式。
    它是由一個工廠類所根據(jù)傳入的參量決定創(chuàng)建出哪一種產(chǎn)品類的實例。
    它涉及到3個角色
    1。工廠類角色(Creator):這個角色時工廠模式的核心,工廠類再客戶端的直接調(diào)用下創(chuàng)建產(chǎn)品對象,它往往由一個具體JAVA類實現(xiàn)。
    2。抽象產(chǎn)品角色(Product):擔(dān)任這個角色的類是由工廠方法模式所創(chuàng)建的對象的父類或者接口。抽象產(chǎn)品角色可以用接口或者抽象類實現(xiàn)。
    3。具體產(chǎn)品角色(Concrete Product):工廠方法模式所創(chuàng)建的任何對象都是這個角色的實例,具體產(chǎn)品角色由一個具體JAVA類來實現(xiàn)。

        簡單工廠模式的缺點是進(jìn)行功能擴(kuò)展比較困難。按下面例子來說,如果增加一個形狀,那么就要修改工廠方法
    的源代碼,違背了“開閉”原則。
        開閉原則:就是在不修改代碼的情況下擴(kuò)展其功能。
    -----------------------------------------------
    寫了個靜態(tài)工廠模式的例子

     

    //工廠類
    public class test{
     
    public static sharp factory(String s) throws badException
     
    {
      
    if(s.equals("circle"))//當(dāng)傳入的參數(shù)==circle時,return實例化的circle
       return new circle();
      }

      
    else if(s.equals("retangle"))
      
    {
       
    return new retangle();
      }

      
    else{
       
    throw new badException("error");//拋出異常,必須捕獲異常
      }

     }

     
    public static void main(String[] args){
      
    try{
       test.factory(
    "circle");//調(diào)用static method
      }

      
    catch(badException e){
       System.
    out.println (e);
      }

      
     }

    }



    class circle implements sharp{
     
    public circle(){
      
    this.draw();
     }

     
    public void draw(){
      System.
    out.println ("draw1");
     }

     
    public void del(){
      System.
    out.println ("del1");
     }

    }


    class retangle implements sharp{
     
    public void draw(){
      System.
    out.println ("draw2");
     }

     
    public void del(){
      System.
    out.println ("del2");
     }

    }



    class badException extends Exception{
     
    public badException(String s){
      super(s);
     }

    }

    //定義接口
    interface sharp{
     
    public void draw();
     
    public void del();
     
    }




     

    posted on 2005-08-08 14:44 瘋流成性 閱讀(602) 評論(1)  編輯  收藏 所屬分類: 設(shè)計模式

    評論

    # re: 靜態(tài)工廠模式 2012-03-25 00:16 月月鳥0820

    哥們,你這樣做沒有報錯嗎?
    在工廠類中沒有報錯嗎?  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 无码乱人伦一区二区亚洲| 亚洲精品国产av成拍色拍| 牛牛在线精品观看免费正| 1000部啪啪未满十八勿入免费| yy6080亚洲一级理论| 亚洲国产品综合人成综合网站| 久久免费99精品国产自在现线| 最近的免费中文字幕视频| 亚洲国产高清在线| v片免费在线观看| 成人免费视频一区二区三区| 精品日韩亚洲AV无码| 久久性生大片免费观看性| 国产一级高清免费观看| 亚洲一卡二卡三卡四卡无卡麻豆| 中文字幕一区二区免费| 亚洲成av人片一区二区三区| 亚洲色大成网站www久久九 | 免费一级特黄特色大片在线 | 99久久99这里只有免费的精品| 日韩免费视频观看| 亚洲午夜在线一区| 91成人免费观看| 亚洲∧v久久久无码精品| 免费看无码特级毛片| 在线a亚洲v天堂网2019无码| 美女被免费网站在线视频免费| 成年女人18级毛片毛片免费| 亚洲国产品综合人成综合网站| 久久久久久国产精品免费无码| 亚洲va久久久噜噜噜久久男同| 三级黄色在线免费观看| 久久国产成人精品国产成人亚洲 | 亚洲欧美综合精品成人导航| 91免费播放人人爽人人快乐| 亚洲视频网站在线观看| 无码囯产精品一区二区免费 | 亚洲资源在线视频| 麻花传媒剧在线mv免费观看| 久久精品亚洲精品国产色婷 | 亚洲国产综合无码一区二区二三区 |