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

    下面看例子代碼:
    此模式涉及到抽象工廠角色(汽車廠),具體工廠角色(具體的汽車車間),抽象產(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)航:
     
    主站蜘蛛池模板: 国产精品免费看香蕉| 在线免费不卡视频| 伊人久久大香线蕉亚洲五月天 | 2020国产精品亚洲综合网| 97久久免费视频| 亚洲黄色在线播放| 97国产免费全部免费观看| 亚洲一级视频在线观看| 97无码免费人妻超级碰碰夜夜| 国产亚洲精aa在线看| 免费毛片在线视频| 青青久久精品国产免费看| 亚洲日韩在线观看| 国产精品99精品久久免费| 97se亚洲综合在线| 青青视频观看免费99| 亚洲色大成WWW亚洲女子| 免费国产不卡午夜福在线 | 两个人的视频www免费| 亚洲精品国产精品乱码视色| 国产免费一区二区三区不卡 | 一级毛片a免费播放王色电影| 亚洲成人影院在线观看| 国产免费区在线观看十分钟| 亚洲va无码专区国产乱码| 亚洲成人免费网址| 噜噜综合亚洲AV中文无码| 国产亚洲欧洲Aⅴ综合一区 | 国产亚洲成归v人片在线观看| 久久精品国产免费一区| 亚洲婷婷在线视频| 免费观看四虎精品国产永久| a级毛片毛片免费观看久潮| 亚洲欧洲国产综合| 免费一区二区视频| 999久久久免费精品播放| 亚洲乱码无人区卡1卡2卡3| 亚洲乱码日产一区三区| 国产在线国偷精品产拍免费| 一级做a免费视频观看网站| 亚洲成a人片7777|