对简单工厂模式升级,就成了工厂方法模式
简单工厂模式是有一个工厂类,穿个参数获取对象
工厂方法模式是有一个接口,工厂类继承这个接口,可以有多个工厂类,下面说说多个工厂类和一个工厂类的区别
区别在于根据 参数获取对象的时候的判断--这段代码的位置。如果这段代码放到工厂方法里面,那么这就是简单工厂模式
要是把这个判断的代码放到工厂方法的外面,也就是获取对象的时候,那么就是:
if(判断条件){
接口引用 = new 适合判断条件的工厂类();
}
这样做的特点是新增一种可获取对象的时候不需要修改工厂方法(简单工厂模式需要再增加一个if或者case when),而是新增一个工厂类(实现工厂接口)
这个特点不一定是有点也不一定是缺点,看情况判断