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

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

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

    創建模式-工廠模式

    1.使用場景

         1)子類過多,不容易管理;構造對象過程過長;精簡代碼創建;

        2)目前我們代碼情況: 編寫代碼的時候,我們經常都在new對象,創建一個個的對象,而且還有很多麻煩的創建方式,eg:HashMap<String,Float> grade=new HashMap<String,Float>(),這樣的代碼創建方式太冗長了,難道你沒有想過把這個創建變的短一點么,比如:HashMap<String,Float>grade=HashMapFactory.new(),可以把你創建精簡一點;你也可以還有別的需求,在創建對象的時候,你需要不同的情況,創建統一種類別的對象,eg:我想生成不同的汽車,創建小轎車,創建卡車,創建公交汽車等等,都屬于同種類別:汽車,你難道沒有想過,我把這些創建的對象在一個工廠里來負責創建,我把創建分開化,交給一人來負責,這樣可以讓代碼更加容易管理,創建方式也可以簡單點。

    比如:Car    BMW=CarFactory.create(bmw);   把創建new由一個統一負責,這樣管理起來相當方便

        3)怎么改進:這個時候,你會想到,創建這樣同類別的東西,我把這個權利分出去,讓一個人來單獨管理,它只負責創建我的對象這個事情,所以你單獨簡歷一個對象來創建同類的對象,這個時候,你想這個東西有點像工廠一樣,生成同樣的產品,所以取了個名字:工廠模式,顧名思義,只負責對象的創建

        4)改進后的好處:代碼更加容易管理了,代碼的創建要簡潔很多。

        5)改進后的壞處:那就是你需要單獨加一個工廠對象來負責創建,多需要寫點代碼。

    2.一個實際的例子

       創建寶馬汽車與奔馳汽車的例子

       1)先提取出一個汽車的公用接口Car

           public interface Car{

              /**行駛*/    

              public void drive();

            }

       2)寶馬和奔馳汽車對象

    public class BMWCar implements Car {

    /**
    * 汽車發動
    */
    public void drive(){
       System.out.println("BMW Car drive");
    }
    }

    public class BengCar implements Car {

    /**
    * 汽車發動
    */
    public void drive(){
       System.out.println("BengChi Care drive");
    }
    }

        3)單獨一個汽車工廠來負責創建

         public class FactoryCar {
    /**
    * 制造汽車
    *
    * @param company 汽車公司
    * @return 汽車
    * @throws CreateCarException 制造汽車失敗異常
    */
    public static Car createCar(Company company)throws CreateCarException{
       if(company==Company.BMW){
        return new BMWCar();
       }else if(company==Company.Beng){
        return new BengCar();
       }
       return null;
    }
    }

        4)最后的代碼實現:

        Car BMWCar=FactoryCar.createCar(Company.BMW);
         BMWCar.drive();

    posted on 2012-08-06 17:28 陳睿 閱讀(273) 評論(0)  編輯  收藏 所屬分類: 設計模式

    導航

    <2012年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 特级做A爰片毛片免费69| 亚洲欧洲自拍拍偷精品 美利坚| av免费不卡国产观看| 国产91久久久久久久免费| 亚洲AV成人精品网站在线播放| 亚洲精品久久久久无码AV片软件| 鲁丝片一区二区三区免费 | 亚洲成a人片在线观看久| 亚洲综合日韩中文字幕v在线| 香蕉视频亚洲一级| 亚洲成人免费网址| 亚洲欧洲国产精品香蕉网| 日韩欧美亚洲中文乱码| 99在线精品视频观看免费| 亚洲av乱码一区二区三区香蕉| 国产一级一毛免费黄片| 国产大片91精品免费看3| 中文字幕亚洲综合小综合在线 | 狠狠亚洲狠狠欧洲2019| 亚洲精品又粗又大又爽A片| 永久免费在线观看视频| 亚洲最大福利视频| 亚洲av片一区二区三区| 亚洲精品国产综合久久久久紧| 免费a级黄色毛片| 亚洲精品无码专区| 国产成人高清亚洲| 九九综合VA免费看| 免费国产在线观看| 免费精品久久天干天干| 亚洲日韩中文无码久久| 84pao国产成视频免费播放| 亚洲无码在线播放| 中文字幕无码播放免费| 免费观看四虎精品成人| 免费国产成人高清视频网站 | 18国产精品白浆在线观看免费| 亚洲av日韩综合一区久热| 亚洲av日韩av不卡在线观看 | 亚洲精品国产精品乱码在线观看 | 大陆一级毛片免费视频观看i|