一、原理讲解
1.1意图
将工厂内部逻辑简化,使用一个工厂在内部用if或者switch创建不同产品对象。
1.2应用场景
- 工厂类负责创建的产品对象比较少,不会造成工厂方法中内部逻辑复杂;
- 客户端只需要传入工厂类的参数,对对象如何创建不感兴趣;
1.3结构图(UML图)
![](https://i-blog.csdnimg.cn/blog_migrate/e6e2dfcf8ea6cced9b9a1e28318dc4a4.jpeg)
1.4代码实现步骤
a1 定义一个抽象产品接口类IProduct,并且定义一个接口函数show()用于子类继承;(抽象产品类)
a2 定义两个实现接口类IProductA和IProductB,都重写接口函数show();(具体产品类)
a3 定义一个抽象接口工厂类IFactory,并且定义一个对象创建函数createProduct,唯一目的是被子类继承重写;(抽象工厂类)
a4 定义一个具体工厂类SimpleFactory,重写接口函数createProduct,在该函数内部用if或者switch条件判断和返回所有需要创建的产品类。(具体产品类)