设计模式day3-工厂模式
工厂模式
将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦
简单工厂(静态工厂)
- 创建对象由工厂提供
- 创建型;由一个工厂对象决定创建出哪一种产品的实例
- 封装实例化对象的行为(代码)
- 用于:大量创建某种、某类、某批对象
public class SimpleFactory {
public Pizza createObject(String pizzaType) {
Pizza pizza = null;
if ("aPizza".equals(pizzaType)) {
pizza = new APizza();
pizza.setName("aPizza");
} else if ("bPizza".equals(pizzaType)) {
pizza = new BPizza();
pizza.setName("bPizza");
}
return pizza;
}
//或
//public static Pizza createObject(String pizzaType) {
//......
//}
}
工厂方法
- 对简单工厂类进行抽象
- 创建对象的抽象方法,由子类决定要实例化的类
- 将对象的实例化推迟到子类,(子类重写的方法,包含简单工厂里的createObject代码)
抽象工厂
- 接口
- 简单工厂+工厂方法的整合
- 对简单工厂的进一步抽象
以此纪念陪伴我十年的狗狗