说明:工厂方法跟简单工厂的区别在于简单工厂方法在构造的时候,通过判断输入参数,实例化不同车对象,而工厂方法新增不同车的工厂,客户端在调用的时候控制实例化哪个车工厂。
需求:跟简单工厂模式一样,要开不同的车
解决方式:
a. 一个开车父类,定义一个开车方法;
b. 分别定义子类开奥迪车、开奔驰车、开宝马车;(继承)
c. 一个工厂父类;
d. 根据不同车子类,新增不同工厂父类,构造方法实例化对应子类对象;
e. 客户A类声明父类,根据不同需求调用不同工厂类实例化对应的子类,调用子类的开车方法。
需求变更:开大众车
解决方式:
新增子类开大众车;
新增开大众车工厂;
客户端通过调用开大众车工厂,执行开大众车。
类图