[code="java"]
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("小巴停车了。。。。");
}
}
/**
*这个接口有什么用途?
*如果去了这个接口,下面CarFactory和BusFactory都不实现这个接口功能是一样的?怎么理解这个接口?
*/
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 Factorydemo02 {
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();
}
}
[/code]