工厂的定义:负责处理对象的创建,将其从实现中剥离出来,避免新类型对象创建破坏“对修改关闭”的原则
简单工厂模式严格意义上大家都不认为是一种模式,而是一种编程习惯。根据类型使用条件判断实例化不同类型的对象
实现:
package com.jv.designpatterns.factory.simplefactory;
public interface Pizza {
}
package com.jv.designpatterns.factory.simplefactory;
public class PizzaA implements Pizza {
}
package com.jv.designpatterns.factory.simplefactory;
public class PizzaB implements Pizza {
}
package com.jv.designpatterns.factory.simplefactory;
public class PizzaFactory {
public static Pizza createPizza(String type) {
if(type.equals("1")) {
return new PizzaA();
}else if(type.equals("2")) {
return new PizzaB();
}
return null;
}
}
PizzaFactory类使用静态方法创建Pizza对象,而不需要new 一个PizzaFactory工厂对象
优点:简单,易懂
缺点:如果不断新增或者删除类型,会去修改createPizza方法,OO设计原则要求对封闭修改,所以做得还不够彻底