前言很多人不理解简单工厂模式、工厂方法模式和抽象工厂模式的区别。这里不讲太多理论,只看代码结构,提供一个框架思路,如下:简单的工厂模型类结构,一个工厂类,一个产品抽象类(或接口),N个具体的产品实现类使用1、根据需求,一一实现产品抽象类。2.在工厂类中,根据需求生成具体的产品对象。工厂方法模式类结构1个工厂抽象类(或接口)N个工厂实现类1个产品抽象类(或接口)N个产品实现类的使用1.根据需求,逐一实现产品抽象类。2、根据需求,逐一实现工厂抽象类。在每个工厂实现类中,生成对应的产品(相对于简单工厂模式,这里把生产职责分给了具体的工厂类,也就是说,如果我现在要添加一个新的产品,只需要添加一个产品实现类和对应的工厂实现类)抽象工厂模式类结构一个工厂抽象类(或接口)N个工厂实现类N个产品抽象类(或接口)N个产品实现类用途1.根据需求,实现产品一个一个按照产品族抽象类2.根据需求,一个一个实现工厂抽象类,在每个工厂实现类中,按照产品族进行生产操作(因为不再针对一个单一产品,所以在工厂实现类中,一般有多种生产方式)。现在让我们看一下并总结一下,不是吗?很简单的?对于这三种模式,复杂性和抽象性都逐渐增加。简单,只抽象产品,对产品和工厂进行抽象,职责分离,符合开闭原则抽象的不再按产品类别抽象,而是按产品族抽象,所以会有N个产品抽象类但是不管是哪一种,product都必须是抽象的,但是第三种抽象稍微多一点(针对productfamily)注:以上列举的只是正常情况下可能的结构,没有列出Variantcase
