Autumn SALE
Абстрактная фабрика

Абстрактная фабрика на Swift

Абстрактная фабрика — это порождающий паттерн проектирования, который решает проблему создания целых семейств связанных продуктов, без указания конкретных классов продуктов.

Абстрактная фабрика задаёт интерфейс создания всех доступных типов продуктов, а каждая конкретная реализация фабрики порождает продукты одной из вариаций. Клиентский код вызывает методы фабрики для получения продуктов, вместо самостоятельного создания с помощью оператора new. При этом фабрика сама следит за тем, чтобы создать продукт нужной вариации.

Сложность:

Популярность:

Применимость: Паттерн можно часто встретить в Swift-коде, особенно там, где требуется создание семейств продуктов (например, внутри фреймворков).

Признаки применения паттерна: Паттерн можно определить по методам, возвращающим фабрику, которая, в свою очередь, используется для создания конкретных продуктов, возвращая их через абстрактные типы или интерфейсы.

Следующие примеры доступны на Swift Playgrounds.
Благодарность Alejandro Mohamad за создание версии Playground.

Абстрактная фабрика на других языках программирования

Абстрактная фабрика на C# Абстрактная фабрика на C++ Абстрактная фабрика на Go Абстрактная фабрика на Java Абстрактная фабрика на PHP Абстрактная фабрика на Python Абстрактная фабрика на Ruby Абстрактная фабрика на Rust Абстрактная фабрика на TypeScript