Swift 4中的抽象工厂模式

Abstract Factory提供了一个用于创建相关或相关对象族的接口,而无需指定其具体类。 工厂可以生产不同类型的产品。 抽象工厂创建不同类型的工厂。

类型:创作模式

也称为:套件

结构体:

参加者:

  1. AbstractFactory:声明用于创建抽象产品对象的操作的接口。
  2. ConcreteFactory:实现创建具体产品对象的操作。
  3. AbstractProduct:声明一种产品对象的接口。
  4. ConcreteProduct:定义要由相应的混凝土工厂创建的产品对象。 补充AbstractProduct接口。
  5. 客户端:仅使用AbstractFactory和AbstractProduct类声明的接口。

Swift 4实现:

这是《四人帮》一书中给出的示例WidgetFatory的实现。 我不会详细描述以下代码片段。 我假设您已经具有抽象工厂设计模式的先验知识。

根据类图,有两种抽象产品…

对于一个抽象产品,将有混凝土产品,而有两个混凝土工厂。

抽象工厂:

根据分类图,有两个混凝土工厂。

在这里,我们的客户是GUIBuilder.swift 。 根据抽象工厂模式,客户将仅使用抽象工厂和产品类。 客户不必担心它从抽象工厂得到的具体产品。

客户用途:

您可以在此处找到完整的源代码:Github