將對象的實現與創建分離,同時解決簡單工廠中每次增加對象需要修改工廠類實現的問題。
缺點:增加了類的複雜度。
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();
}
}