设计模式-- 工厂方法模式
工厂方法(FactoryMethod)模式的定义:将创建对象的过程交由工厂实现,一个定义工厂接口,具体创建过程延缓到具体子工厂,使创建和使用相分离。
下为工厂方法模式 实例:
interface Car{
//汽车父类
void runing();
}
class BMW implements Car{
//宝马
@Override
public void runing() {
System.out.println("BMW running ...");
}
}
class Benz implements Car{
//奔驰
@Override
public void runing() {
System.out.println("Benz running ...");
}
}
interface CarFactory{
//汽车工厂
public Car getCar();
}
class BMWCarFactory implements CarFactory{
//具体生产汽车子类
@Override
public Car getCar() {
return new BMW();
}
}
class BenzCarFactory implements CarFactory{
//具体生产汽车子类
@Override
public Car getCar() {
return new Benz();
}
}
工厂方法模式的主要优点有:
满足开闭原则(对扩展开放,对修改关闭),创建和使用相分离。
其缺点是:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。