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