不修改已有代码,而是添加代码 不和所有类打交道,只和总接口的实现类打交道 public class Cilent {

public static void main(String[] args) {

	Car c1=new AudiFactory().createCar();
	Car c2=new ByadiFactory().createCar();
	Car c3=new BenzFactory().createCar();
	
	c1.run();
	c2.run();
	c3.run();
}

}

接口: public interface Car {

void run();
}
实现1:
public class Benz implements Car {

public void run()
{
	System.out.println("Benz");
}

}
实现2:
public class Byadi implements Car{

public void run()
{
	System.out.println("Byadi");
}

} 实现3:

public class Audi implements Car {

public void run()
{
	System.out.println("Audi");
}

} 工厂: 接口:

public interface CarFactory {

Car createCar();

} 实现1:

public class AudiFactory implements CarFactory{

public Car createCar()
{
	return new Audi();
}

} 实现2:

public class BenzFactory implements CarFactory {

public Car createCar()
{
	return new Benz();
}
}

实现3:

public class ByadiFactory implements CarFactory {

public Car createCar()
{
	return new Byadi();
}
}