《定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。》
简单工厂模式是直接用工厂类的静态方法就可以创建对象了,而这个是把创建对象的过程放在一个接口或抽象类的子类来完成.
上图
核心在于把工厂进一步细分,吉利工厂生产吉利汽车,奇瑞工厂生产奇瑞汽车.
上代码
factory
public interface Factory {
public Car product();
}
JiliFactory
public class JiliFactory implements Factory{
@Override
public Car product() {
return new JiliCar();
}
}
QiruiFactory
public class QiruiFactory implements Factory{
@Override
public Car product() {
return new QiruiCar();
}
}
test
public class FactoryMethodTest {
public static void main(String[] args) {
//吉利工厂生产吉利
Factory factory = new JiliFactory();
System.out.println(factory.product().getBrand());
//奇瑞工厂生产奇瑞
factory = new QiruiFactory();
System.out.println(factory.product().getBrand());
}
}
result
吉利汽车
奇瑞汽车
好了,到这大家应该清楚了吧,工厂职责进一步细分,再也不用担心猜这个工厂是干嘛的而烦恼了.
如果理解不妥之处还请在下方留言