隨筆-28  評論-15  文章-81  trackbacks-0
           

          package com.tanm.factoryDemo;

          interface Car {

              public void start();

              public void stop();

          }

          class Benz implements Car {

              public void start() {

                 System.out.println("Benz開動了。。。。");

              }

              public void stop() {

                 System.out.println("Benz停車了。。。");

              }

          }

          class Ford implements Car {

              public void start() {

                 System.out.println("Ford開動了。。。。");

              }

              public void stop() {

                 System.out.println("Ford停車了。。。");

              }

          }

          class BigBus implements Car {

              public void start() {

                 System.out.println("大巴開車了。。。。");

              }

              public void stop() {

                 System.out.println("大巴停車了。。。。");

              }

          }

          class MiniBus implements Car {

              public void start() {

                 System.out.println("小巴開車了。。。。");

              }

              public void stop() {

                 System.out.println("小巴停車了。。。。");

              }

          }

          //抽象工廠

          interface AbstractFactory {

          }

          //具體小汽車工廠

          class CarFactory implements AbstractFactory {

              public Car getCar(String type) {

                 Car c = null;

                 try {

                     c = (Car) Class.forName("org.jzkangta.factorydemo02." + type)

                            .newInstance();

                 } catch (InstantiationException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                 } catch (IllegalAccessException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                 } catch (ClassNotFoundException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                 }

                 return c;

              }

          }

          //具體公共汽車工廠

          class BusFactory implements AbstractFactory {

              public Car getBus(String type) {

                 Car c = null;

                 try {

                     c = (Car) Class.forName("org.jzkangta.factorydemo02." + type)

                            .newInstance();

                 } catch (InstantiationException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                 } catch (IllegalAccessException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                 } catch (ClassNotFoundException e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                 }

                 return c;

              }

          }

          public class FactoryDemo {

              public static void main(String[] args) {

                 // CarFactory cf=new CarFactory();

                 BusFactory bf = new BusFactory();

                 Car c = null;

                 // c=cf.getCar("Benz");

                 c = bf.getBus("BigBus");

                 c.start();

                 c.stop();

              }

          }

          posted on 2007-10-16 18:09 譚明 閱讀(242) 評論(0)  編輯  收藏 所屬分類: Java設計模式

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


          網站導航:
           
          主站蜘蛛池模板: 万年县| 旬邑县| 婺源县| 安丘市| 泰顺县| 靖西县| 新绛县| 上犹县| 济南市| 洛阳市| 上饶市| 江油市| 元阳县| 汉沽区| 永登县| 丹江口市| 安福县| 蛟河市| 祁连县| 嘉禾县| 五峰| 旌德县| 防城港市| 鄂托克旗| 班玛县| 瑞昌市| 贵德县| 深州市| 宁陵县| 达孜县| 福海县| 乌兰察布市| 和平县| 越西县| 汉中市| 从江县| 荆门市| 勃利县| 巢湖市| 平泉县| 奇台县|