1、简单工厂模式可以决定在什么时候创建哪一个产品类的实例

工厂类含有必要的判断逻辑,可以决定在什么时候创建一个产品类的实力,客户端可以免除直接创建产品对象的责任,而仅”消费“产品。

简单工厂模式通过这种做法实现了对责任的分割,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。通过它,外界与具体类隔离开来,偶合性低。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。

2、工厂方法模式有非常良好的扩展性

工厂方法模式每个具体工厂类只完成单一任务,代码简洁。工厂方法模式完全满足 OCP,即它有非常良好的扩展性。

3、抽象工厂模式降低了模块间的耦合性,提高了团队开发效率

它只需改变具体的工厂即可使用不同的产品配置,这是因为一个抽象工厂创建了一个完整的产品系列,所以整个产品系列会立刻改变。它有利于产品的一致性。当一个系列的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列中的对象,这一点很重要,而抽象工厂很容易实现这一点。抽象工厂模式有助于这样的团队的分工,降低了模块间的耦合性,提高了团队开发效率。