Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Obiektowe metody projektowania systemów
Builder design pattern
2
Wstęp: Builder – wzorzec kreacyjny pracujący w zakresie obiektowym
Intencja – Rozdzielić konstrukcję złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje.
3
Plan: Powody utworzenia, motywacja Zastosowanie
Przykłady implementacji w C++ Struktura i elementy składowe Konsekwencje użycia Powiązania z innymi wzorcami Bibliografia
4
Powody utworzenia, motywacja
Tworzenie złożonego obiektu reprezentującego zbiór danych Potrzeba posiadania kilku możliwych reprezentacji danych Mimo mnogości reprezentacji, jedna metodyka tworzenia na podstawie danych Przykład: uniwersalne parsery
5
Zastosowanie Algorytm tworzenia złożonego obiektu powinien być niezależny od części współtworzących obiekt oraz tego w jaki sposób on jest złożony. Proces konstruowania musi zezwalać na różne reprezentacje obiektu konstruowanego
6
Przykłady implementacji w C++
class Builder { public: virtual void BuildComponent1() { } virtual void BuildComponent2(int param1) { } virtual void BuildComponent3(int paramA, int paramB) { } // to nie są abstrakcyjne metody, tylko puste, wirtualne - // dla możliwości nieimplementowania wybranych komponentów // virtual Product* GetCompleteProduct() { return 0; } // ^ dopiero dla konkretnego, wydziedziczonego Buildera !!! protected: Builder(); // nie chcemy instancjalizować naszej pseudoabstrackji };
7
Struktura i elementy składowe
8
Konsekwencje użycia Zalety. Pozwala stosować różną wewnętrzną reprezentację. Izoluje kod konstrukcji i reprezentacji. Daje kontrolę nad rozłożeniem tworzenia w czasie, w przeciwieństwie do innych konstrukcyjnych wzorców.
9
Powiązania z innymi wzorcami
Builder jest podobny do Abtract Factory w tym, że obydwa tworzą złożone twory. Builder jednak tworzy stopniowo. Abstract Factory z kolei kładzie nacisk na rodzinę drobnych produktów tworzonych jednostrzałowo. Często budowanym obiektem jest Composite
10
Podsumowanie: Builder daje jednolity interfejs do budowy złożonego obiektu klasie która wie kiedy budować i jakimi krokami, a niezbyt wie jak. Pozwala mieć kilka metod na stworzenie poszczególnych elementów złożonego obiektu.
11
Bibliografia: Gamma E.,Helm R.,Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 Alexandrescu A.: Modern C++ Design, Addison-Wesley, 2001
12
...i to by było tyle na dzisiaj!
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.