WYPRZEDAŻ ZIMOWA TRWA!
Fabryka abstrakcyjna

Fabryka abstrakcyjna w języku Swift

Fabryka abstrakcyjna jest kreacyjnym wzorcem projektowym, który pozwala tworzyć rodziny spokrewnionych ze sobą obiektów bez określania ich konkretnych klas.

Fabryka abstrakcyjna definiuje interfejs służący tworzeniu poszczególnych produktów, ale pozostawia faktyczne tworzenie produktów konkretnym klasom fabrycznym. Każdy typ fabryki odpowiada jednemu z wariantów produktu.

Kod klienta wywołuje metody kreacyjne obiektu fabrycznego zamiast tworzyć produkty bezpośrednio — wywołując konstruktor (za pomocą operatora new). Skoro dana fabryka odpowiada jednemu z wariantów produktu, to wszystkie jej produkty będą ze sobą kompatybilne.

Kod klienta współpracuje z fabrykami i produktami wyłącznie poprzez ich abstrakcyjne interfejsy. Dzięki temu jeden klient jest kompatybilny z wieloma różnymi produktami. Wystarczy stworzyć nową konkretną klasę fabryczną i przekazać ją kodowi klienta.

Jeśli masz problem ze zrozumieniem różnicy pomiędzy poszczególnymi koncepcjami i wzorcami wytwórczymi, przeczytaj nasze Porównanie fabryk.

Złożoność:

Popularność:

Przykłady użycia: Wiele frameworków i bibliotek korzysta z niego by umożliwić rozszerzanie i dostosowywanie swoich standardowych komponentów.

Identyfikacja: Ten wzorzec można łatwo rozpoznać na podstawie metod zwracających obiekt fabryczny, który potem służy tworzeniu konkretnych pod-komponentów.

Następujące przykłady są dostępne na Swift Playgrounds.
Gratulacje dla Alejandro Mohamad za stworzenie wersji Playground.

Fabryka abstrakcyjna w innych językach

Fabryka abstrakcyjna w języku C# Fabryka abstrakcyjna w języku C++ Fabryka abstrakcyjna w języku Go Fabryka abstrakcyjna w języku Java Fabryka abstrakcyjna w języku PHP Fabryka abstrakcyjna w języku Python Fabryka abstrakcyjna w języku Ruby Fabryka abstrakcyjna w języku Rust Fabryka abstrakcyjna w języku TypeScript