- 核心
- 实例化对象,用工厂方法代替new操作。
- 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。
- 分类
- 简单工厂模式:用来生产统一等级结构中的任意产品。对于增加新的产品,需要修改已有代码。
- 工厂方法模式:用来生产统一等级结构中的固定产品,支持增加任意产品。
- 抽象工厂模式:用来生产不同产品族的全部产品。对于增加新的产品无能为力,支持增加产品族。
public static class SimpleCarFactory(String type) {
if ("audi".equals(type)) {
return new Audi();
} else if ("byd".equals(type)) {
return new Byd();
} else {
return null;
}
}
public interface CarFactory {
Car createCar();
}
public class AudiFactory implements CarFactory {
@Override
public createCar() {
return new Audi();
}
}