关于SpringBoot集成使用策略模式请翻阅我的另一篇博客,上边详细介绍了使用方式
三、工厂模式
定义:任何可以产生对象的方法或类,都可以称之为工厂。单例也是一种工厂----静态工厂。
- 一个抽象产品类
- 多个具体产品类
- 一个抽象工厂
- 多个具体工厂 - 每一个具体产品对应一个具体工厂
- 符合 - OCP开放封闭原则
优点
- 降低了代码耦合度,对象的生成交给子类去完成
- 实现了开放封闭原则 - 每次添加子产品 不需要修改原有代码
缺点
- 增加了代码量,每个具体产品都需要一个具体工厂
- 当增加抽象产品 也就是添加一个其他产品族 需要修改工厂 违背OCP
工厂模式之简单工厂
简单工厂又称静态工厂
/**
* @author Liutx
* @date 2020/11/30 21:38
* @Description 生产工具工厂,工厂可以生成不同的工具对象
*/
public class VehicleFactory {
/**
* 自定义生产过程,前边可以加日志处理、权限处理等
*
* @return
*/
public Car createCar() {
return new Car();
}
public Broom createBroom() {
//扫帚的权限控制省略
return new Broom();
}
public Plane createPlane() {
return new Plane();
}
}
缺点
- 扩展性不好,没新增一种工厂,需要新增一个工厂类。违反OCP开放封闭原则
新增一个工厂方法:CarFactory
public class CarFactory {
public Car create() {
//日志框架
System.out.println("a car created!");
return new Car();
}
}