package com.tanm.factoryDemo;
interface Car {
public void run();
public void stop();
}
class Benz implements Car {
public void run() {
System.out.println("Benz開始啟動了");
}
public void stop() {
System.out.println("Benz停車了");
}
}
class Toyota implements Car {
public void run() {
System.out.println("Toyota啟動了");
}
public void stop() {
System.out.println("Toyota停車了");
}
}
class Ford implements Car {
public void run() {
System.out.println("Ford開始啟動了");
}
public void stop() {
System.out.println("Ford停車了");
}
}
class Factory {
public static Car getCarInstance(String type) {
Car c = null;
try {
// 利用java的反射機制
c = (Car) Class.forName("com.tanm.factoryDemo." + type)
.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return c;
}
}
public class FactoryDemo {
public static void main(String[] args) {
Car c = Factory.getCarInstance("Toyota");
if (c != null) {
c.run();
c.stop();
} else {
System.out.println("造不了這種汽車");
}
}
}
posted on 2007-10-16 17:39
譚明 閱讀(315)
評論(0) 編輯 收藏 所屬分類:
Java設計模式