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

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

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

    魚躍于淵

    First know how, Second know why !
    posts - 0, comments - 1, trackbacks - 0, articles - 49

    工廠模式

    Posted on 2008-12-20 19:29 魚躍于淵 閱讀(187) 評論(0)  編輯  收藏 所屬分類: 設(shè)計模式
    工廠方法模式和簡單工廠模式在結(jié)構(gòu)上的不同是很明顯的。工廠方法模式的核心是一個抽象工廠類,而簡單工廠模式把核心放在一個具體類上。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創(chuàng)建行為繼承下來,從而可以成為多個簡單工廠模式的綜合,進(jìn)而推廣了簡單工廠模式。

    下面看例子代碼:
    此模式涉及到抽象工廠角色(汽車廠),具體工廠角色(具體的汽車車間),抽象產(chǎn)品角色(汽車)以及具體產(chǎn)品角色(私車,公交巴士)。
     1package com.givetop.Factory;
     2
     3
     4
     5public class Factory1 {
     6    public static void main(String[] args){
     7        Car_Factory cf = new Car_Factory();
     8        Car car = cf.getCar("Benz");
     9        car.run();
    10        car.stop();
    11        System.out.println("------------------------------------------------------------------------");
    12        Bus_Factory bf = new Bus_Factory();
    13        bf.getCar("Big_Bus").run();
    14        bf.getCar("Big_Bus").stop();
    15        System.out.println("------------------------------------------------------------------------");
    16        bf.getCar("Ford").run();
    17        bf.getCar("Ford").stop();
    18    }

    19}

    20
    21interface Car{
    22    public void run();
    23    public void stop();
    24}

    25
    26interface Factory{
    27    
    28}

    29
    30class Car_Factory implements Factory{
    31    public Car getCar(String type){
    32        Car c = null ;
    33        try {
    34            c = (Car)Class.forName("com.givetop.Factory."+type).newInstance();
    35        }
     catch (InstantiationException e) {
    36            e.printStackTrace();
    37        }
     catch (IllegalAccessException e) {
    38            e.printStackTrace();
    39        }
     catch (ClassNotFoundException e) {
    40            e.printStackTrace();
    41        }

    42        return c;
    43    }

    44}

    45
    46class Bus_Factory implements Factory{
    47    public Car getCar(String type){
    48        Car c = null ;
    49        try {
    50            c = (Car)Class.forName("com.givetop.Factory."+type).newInstance();
    51        }
     catch (InstantiationException e) {
    52            e.printStackTrace();
    53        }
     catch (IllegalAccessException e) {
    54            e.printStackTrace();
    55        }
     catch (ClassNotFoundException e) {
    56            e.printStackTrace();
    57        }

    58        return c;
    59    }

    60}

    61
    62class Ford implements Car{
    63    public void run(){
    64        System.out.println("Ford開始啟動了!");
    65    }

    66    public void stop(){
    67        System.out.println("Ford停止了!");
    68    }

    69}

    70
    71class Benz implements Car{
    72    public void run(){
    73        System.out.println("Benz開始啟動了!");
    74    }

    75    public void stop(){
    76        System.out.println("Benz停止了!");
    77    }

    78}

    79
    80class Big_Bus implements Car{
    81    public void run(){
    82        System.out.println("Big_Bus開始啟動了!");
    83    }

    84    public void stop(){
    85        System.out.println("Big_Bus停止了!");
    86    }

    87}

    88
    89class Mini_Bus implements Car{
    90    public void run(){
    91        System.out.println("Mini_Bus開始啟動了!");
    92    }

    93    public void stop(){
    94        System.out.println("Mini_Bus停止了!");
    95    }

    96}

    不過我有點納悶, Bus_Factory也能制造小汽車   , 可見這個還設(shè)計的不太完善,我想應(yīng)該在Car 這個接口里應(yīng)該分別有小汽車和Bus 的抽象類或接口才對!

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 在线观看成人免费视频不卡| 无码的免费不卡毛片视频 | 国产AV无码专区亚洲A∨毛片| 亚洲精品成人片在线观看| 亚洲成A人片在线观看WWW| a毛片免费全部在线播放**| 久久99国产综合精品免费| 日韩免费观看一级毛片看看| 亚洲乱码无码永久不卡在线 | 老司机午夜性生免费福利 | 亚洲av无码不卡| 国产成人无码区免费内射一片色欲 | 成人免费无码大片a毛片软件| 亚洲精品综合在线影院| 青青草国产免费久久久91| 亚洲欧美aⅴ在线资源| 9277手机在线视频观看免费| 在线免费观看亚洲| 久久受www免费人成_看片中文| 亚洲精品无码久久久久去q| 免费在线看污视频| 亚洲欧洲中文日产| 免费看少妇高潮成人片| 亚洲视频精品在线| 在线观看免费人成视频色| 国产精品亚洲一区二区三区| 亚洲无码日韩精品第一页| 久久大香伊焦在人线免费| 亚洲a级片在线观看| 国产三级免费观看| 亚洲人成77777在线播放网站不卡| 日韩高清免费在线观看| 国产免费区在线观看十分钟| 亚洲欧洲日产国码二区首页| 在线视频免费国产成人| 在线观看免费无码专区| 亚洲欧美日韩综合久久久久| 亚洲午夜国产精品无码老牛影视| 特级毛片免费播放| 中文字幕亚洲综合久久2| 国产精品嫩草影院免费|