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().