工厂模式按照实际业务场景分为 3种不同的实现方式 :(1、简单工厂模式,2、工厂方法模式 3、抽象工厂模式)
1、简单工厂模式
![](https://i-blog.csdnimg.cn/blog_migrate/d2fece00c3c9a74709292e64738a3e7b.png)
主要创建步骤:
1、定义一个产品接口(或抽象)
2、具体实现类(产品接口实现类)
3、通过创建工厂类进行产品的创建
简单工厂模式结构简单,调用方便
缺点:职责单一,工厂类单一,当产品增多时,工厂类的代码维护 比较困难,代码臃肿(可由工厂方法模式解决)
2、工厂方法模式
![](https://i-blog.csdnimg.cn/blog_migrate/2a4bad24bfc458f070f3ca45b8c68528.png)
主要步骤:
1、创建产品接口
2、创建工厂抽象接口
3、创建产品实现类(产品具体实现类)
4、创建对应的工厂实现类(每个工厂创建生成对应的产品)
解耦了,灵活性强,只需要新增一个工厂类
缺点:一个工厂只能生产一个产品(可由抽象工厂模式解决),类增多,增加复杂性以及系统的理解性
3、抽象工厂模式
![](https://i-blog.csdnimg.cn/blog_migrate/74fb4c2995a958cafda24ada794d095f.png)
主要步骤:
1、创建抽象产品接口
2、创建抽象产品工厂接口
3、创建根据对应不同的产品等级,创建不同的产品(如:产品族A -> 可以创建产品A 以及产品B)
4、创建根据不同的产品等级,创建不同的产品工厂(如:工厂A 可以通过产品族A -> 创建产品A ,产品B)
优点:
1、当需要创建产品族时,抽查工厂可以保证一个产品工厂只对应生产一个产品族的产品
2、通过将产品工厂的抽象,提高了代码的扩展性,新增产品族,仅需新增具体产品工厂即可,原有代码保持不变