工厂模式就有三种,它们分别是简单工厂模式(并不在23中模式之中),工厂方法模式以及抽象工厂模式,其中我们通常所说的工厂模式指的是工厂方法模式,工厂方法模式是日常开发中使用频率最高的一种设计模式。
工厂方法模式是通过让子类定义该创建的对象是什么,工厂方法将生产知识封装进哥哥创建者,这样的做法,也可以被视为是一个框架。工厂方法模式定义了一个创建对象的接口,但是由子类决定要实例化的类是哪一个,也就是说工厂方法让类把实例化推迟到子类。
抽象工厂所提供的接口,可以创建产品的家族,利用这个接口书写代码,我们的代码将从实际工厂解耦。抽象工厂模式提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
下面有一篇博文,讲解的比较好,言简易懂
https://juejin.im/entry/58f5e080b123db2fa2b3c4c6