<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 陳睿 閱讀(263) 評論(0)  編輯  收藏 所屬分類: 設計模式

    導航

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

    統計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本特黄特色免费大片| 亚洲一级免费毛片| 亚洲国产精品一区二区第四页| 亚洲欧美不卡高清在线| 最近中文字幕免费mv视频7| 亚洲一区二区三区国产精品无码| 波多野结衣在线免费视频| 亚洲国产成人久久综合一区| 无码人妻一区二区三区免费| 亚洲综合国产成人丁香五月激情| 久久不见久久见免费影院| 中文字幕亚洲码在线| 国产在线19禁免费观看| 人成午夜免费大片在线观看| 日韩亚洲变态另类中文| 九九美女网站免费| 亚洲国产91在线| 亚洲国产成人VA在线观看| 日本高清不卡aⅴ免费网站| 77777_亚洲午夜久久多人| 免费在线观看视频网站| 亚洲精品av无码喷奶水糖心| 亚洲精品tv久久久久久久久久| 久久99精品免费一区二区| 老司机亚洲精品影院无码| 成人免费a级毛片| 无码AV动漫精品一区二区免费| 国产亚洲av片在线观看播放| 在线观看永久免费| 亚洲欧美黑人猛交群| 国外亚洲成AV人片在线观看| 中文字幕免费观看| 亚洲日韩在线中文字幕综合 | 理论片在线观看免费| 亚洲一区二区女搞男| 思思re热免费精品视频66 | 亚洲精品乱码久久久久久V| 国产亚洲精品久久久久秋霞| 5555在线播放免费播放| 老司机福利在线免费观看| 亚洲一级二级三级不卡|