編程之道

          無論是批評的,贊揚的,指著的都請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 瘋流成性 閱讀(602) 評論(1)  編輯  收藏 所屬分類: 設計模式

          評論

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 临邑县| 勐海县| 长乐市| 新化县| 温泉县| 蓝山县| 武城县| 长武县| 晋州市| 开原市| 湟源县| 黑龙江省| 西吉县| 铜梁县| 台南市| 怀仁县| 吉安市| 建平县| 河东区| 玉溪市| 伽师县| 彩票| 云南省| 汉源县| 方城县| 嫩江县| 昔阳县| 吴堡县| 泰宁县| 交口县| 乌恰县| 奉新县| 昭通市| 肥西县| 屯门区| 喀喇沁旗| 萍乡市| 波密县| 高雄县| 杭锦旗| 开原市|