将对象的实现与创建分离,同时解决简单工厂中每次增加对象需要修改工厂类实现的问题。
缺点:增加了类的复杂度。
public interface car {//对象接口类
public void run();
}
public class BMW implements car//对象的具体实现
{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(getClass().getName() + " run");
}
}
public class BYD implements car//对象的具体实现
{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(getClass().getName() + " run");
}
}
public interface CarFactory {//工厂抽象类
car createCar();
}
public class BWMFactory implements CarFactory {//工厂的具体实现
@Override
public car createCar() {
// TODO Auto-generated method stub
return new BMW();
}
}
public class BYDFactory implements CarFactory {//工厂的具体实现
@Override
public car createCar() {
// TODO Auto-generated method stub
return new BMW();
}
}
public class client {//使用类
public static void main(String[] main){
car byd = new BYDFactory().createCar();
car bmw = new BWMFactory().createCar();
byd.run();
bmw.run();
}
}