編程之道

          無論是批評的,贊揚的,指著的都請EMAIL給我,你的建議將是我前進的動力! 聯系我

          靜態工廠模式

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

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

           

          //工廠類
          public class test{
           
          public static sharp factory(String s) throws badException
           
          {
            
          if(s.equals("circle"))//當傳入的參數==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");//調用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 瘋流成性 閱讀(603) 評論(1)  編輯  收藏 所屬分類: 設計模式

          評論

          # re: 靜態工廠模式 2012-03-25 00:16 月月鳥0820

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


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


          網站導航:
           
          主站蜘蛛池模板: 宣化县| 榆中县| 三江| 清水河县| 定西市| 平南县| 神池县| 横山县| 上饶县| 江口县| 察隅县| 搜索| 新昌县| 威远县| 革吉县| 曲水县| 尼木县| 墨竹工卡县| 正阳县| 佳木斯市| 武山县| 衡水市| 承德市| 岐山县| 内黄县| 甘南县| 沽源县| 通渭县| 天等县| 房山区| 苍溪县| 开原市| 牟定县| 通榆县| 仁怀市| 汾阳市| 哈尔滨市| 澎湖县| 奉贤区| 贵州省| 丹凤县|