工厂方法模式:
用来生产同一等级结构中的固定产品(支持增加任意产品)
上一博客的 Car、Consumer、Wuling、Tesla代码 都要
上文连接:https://blog.csdn.net/qq_43799743/article/details/102945806
创建工厂方法模式
建立车工厂CarFactory接口
public interface CarFactory{
Car getCar();
}
每一款车都有一个它自己的工厂
TeslaFactory.java
public class TeslaFactory implements CarFactory{
public Car getCar(){
return new Tesla;
}
}
WulingFactoy,java
public class WulingFactory implements CarFatory{
public Car getCar(){
return new Wuling;
}
}
Consumer.java
public class Consumer{
...main(String[] args){
//得到车
Car car = new WulingFactory.getCar();
Car car2 = new TeslaFactory.getCar();
//增加MoBai车型
Car car3 = new MoBaiFactory.getCar();
}
}
如果要增加车型(MoBai)
只需要增加MoBai.java 和 MoBaiFactory.java 即可
看↑方代码框
实现了开闭原则 流程图如下
与简单工厂进行比较
- 结构复杂度: simple
- 代码复杂度: simple
- 编程复杂度: simple
- 管理上的复杂度: simple
- 根据设计原则:工厂方法模式
- 根据实际业务: 简单工厂模式
都是面向接口来写的。
(end)