不修改已有代码,而是添加代码
不和所有类打交道,只和总接口的实现类打交道
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();
}
}