Swift 4中的抽象工厂模式
Abstract Factory提供了一个用于创建相关或相关对象族的接口,而无需指定其具体类。 工厂可以生产不同类型的产品。 抽象工厂创建不同类型的工厂。
类型:创作模式
也称为:套件
结构体:
参加者:
- AbstractFactory:声明用于创建抽象产品对象的操作的接口。
- ConcreteFactory:实现创建具体产品对象的操作。
- AbstractProduct:声明一种产品对象的接口。
- ConcreteProduct:定义要由相应的混凝土工厂创建的产品对象。 补充AbstractProduct接口。
- 客户端:仅使用AbstractFactory和AbstractProduct类声明的接口。
Swift 4实现:
这是《四人帮》一书中给出的示例WidgetFatory的实现。 我不会详细描述以下代码片段。 我假设您已经具有抽象工厂设计模式的先验知识。
根据类图,有两种抽象产品…
对于一个抽象产品,将有混凝土产品,而有两个混凝土工厂。
抽象工厂:
根据分类图,有两个混凝土工厂。
在这里,我们的客户是GUIBuilder.swift 。 根据抽象工厂模式,客户将仅使用抽象工厂和产品类。 客户不必担心它从抽象工厂得到的具体产品。
客户用途:
您可以在此处找到完整的源代码:Github