工厂模式

简单工厂模式

简单工厂模式也叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。

工厂模式

1、优点。

通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责”消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利。

2、缺点。

由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。

3、点评

在实际应用中,没有人会使用这种经典的简单工厂模式。通常会将 Type 成为 Product 的一个属性,工厂根据 Type,生成对应的 Product,从而避免工厂耦合Product。

工厂方法模式

将一个工厂,拆分成了多个工厂。每个工厂分别负责不同的产品。

工厂模式

工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。但工厂方法模式的缺点是每增加一个产品类,就需要增加一个对应的工厂类,增加了额外的开发量。

1、点评

本模式将Simple Factory中的 Type 拆分了成各个SubFactory,每个 SubFactory管理一个Type。这样做解保持了开闭原则。但是使用方Client需要根据不同的Type,选择不同的Factory。

抽象工厂模式

定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

工厂模式

1,首先从简单工厂进化到工厂方法,是因为工厂方法弥补了简单工厂对修改开放的弊端,即简单工厂违背了开闭原则。

2,从工厂方法进化到抽象工厂,是因为抽象工厂弥补了工厂方法只能创造一个系列的产品的弊端。

Original: https://www.cnblogs.com/tekkaman/p/10472914.html
Author: Tekkaman
Title: 工厂模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/549228/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球