简单工厂模式:
只有一个工厂,通过向工厂传值来选择工厂所要生产的产品。
工厂方法模式:
允许多个工厂,但一个工厂只生产一种产品,通过不同的工厂类型来选择所要生产的产品。
抽象工厂模式:
允许多个工厂,一个工厂允许生产多种产品,通过工厂实例的不同方法来选择所要生产的产品。
缺点:
简单工厂模式,若要增加工厂能够生产的产品,必须更改源码;
工厂方法模式,若要增加一个产品,则需要增加一个工厂类来生产该产品;
抽象工厂模式,相较于前两种模式,更好的实现“开放-封闭”原则。