Wzorzec projektowy Budowniczy (Builder) jest jednym z kreacyjnych

Transkrypt

Wzorzec projektowy Budowniczy (Builder) jest jednym z kreacyjnych
Wzorzec projektowy Budowniczy (Builder) jest jednym z kreacyjnych wzorców projektowych,
czyli wzorcem który opisuje proces tworzenia nowych obiektów. Celem tego wzorca jest
rozdzielenie procesu konstrukcji złożonych obiektów od ich reprezentacji. Takie rozwiązanie
pozwala nam na określenie pewnego sposobu tworzenia obiektów, poprzez podzielenie procesu
tworzenia obiektu na kilka mniejszych etapów, gdzie każdy etap może być implementowany na
wiele sposobów. Czyli możemy tworzyć wiele różnych reprezentacji obiektów w tym samym
procesie konstrukcyjnym.
W tym wzorcu możemy wyróżnić następujące elementy:
Budowniczy
–
interfejs abstrakcyjny do tworzenia części składowych obiektu złożonego
(produktu)
Konkretny budowniczy – jego celem jest konstruowanie i zestawianie części produktu poprzez
implementowanie interfejsu Budowniczego. Definiuje i kontroluje on tworzoną przez siebie
reprezentację. Konkretnych budowniczych może być wiele.
Dyrektor – konstruuje obiekt, używając interfejsu Budowniczego do wywoływania metod
konkretnego budowniczego oraz
nadzoruje budowę aby proces konstrukcyjny przebiegał w
odpowiedniej kolejności, poprzez odpowiednia sekwencję wykonywania etapów tworzenia obiektu.
Produkt – złożony obiekt który tworzony jest z wielu części składowych. Jest on konstruowany
przez Dyrektora przy użyciu konkretnego budowniczego.
Wzorzec ten zostanie zaprezentowany na przykładzie tworzenia samochodu.
W naszym przykładzie budowniczym będzie klasa CarBuilder. Konkretnych budowniczych będą
przedstawiać klasy: Skoda, Fiat i Mercedes. Dyrektorem w naszym przypadku będzie klasa Factory,
a produktem klasa Car.
Factory wybiera jaki samochód ma zostać zbudowany wybierając konkretnego budowniczego,
który zna proces technologiczny. Wybrany budowniczy przy pomocy abstrakcyjnego interfejsu
tworzy wszystkie części potrzebne do zbudowania samochodu. Po wytworzeniu wszystkich części
przez budowniczego, Factory bierze je i tworzy z nich nasz produkt czyli nowy samochód przy
pomocy metody ConstructCar().

Podobne dokumenty