说明:(定义)提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。缺点,一次变更,需要修改多个工厂类。
需求:现在要造奔驰车、宝马车,其中发动机、底盘均有不同的型号,奔驰需要发动机A,底盘A;宝马需要发动机B,地盘B。
解决方式:
a. 分别定义发动机、地盘的抽象类或接口,并分别定义发动机A\B,地盘A\B具体类;
b. 定义造车工厂抽象类或接口,分别定义造奔驰、宝马车工厂具体类;
c. 工厂具体类,分别创建发动机、地盘;
d. 客户端根据需求创建奔驰或宝马工厂。
需求变更:变速箱也不同,分别有A\B两种型号。
解决方式:
定义变速箱的抽象类或接口,并分别定义变速箱A\B具体类;
修改造车工厂抽象类、造奔驰车工厂、造宝马车工厂类。
类图: