设计模式——抽象工厂模式(Abstract Factory Pattern)

90 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

抽象工厂模式(Abstract Factory Pattern)

定义

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。

架构图解

看着下面的架构图,有没有感觉特别熟悉,没错就是包含了工厂模式,如果把抽象工厂类换成接口就与工厂模式的架构图嵌套结构一模一样。 img

使用场景&解决的问题

主要解决接口选择的问题,系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。

实现细节

在一个工厂里聚合多个同类产品

优点&缺点

优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象

缺点:产品族扩展非常困难,要增加一个系列的某一产品,既要在抽象的 Creator 里加代码,又要在具体的里面加代码

代码实例

注意事项

产品族难扩展,产品等级易扩展