• Nie Znaleziono Wyników

Obiektowe metody projektowania systemów

N/A
N/A
Protected

Academic year: 2021

Share "Obiektowe metody projektowania systemów"

Copied!
12
0
0

Pełen tekst

(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

http://c2.com/cgi/wiki?AbstractFactory

http://hillside.net/patterns/

http://en.wikipedia.org/wiki/Abstract_factory_pattern

Alexandrescu A.: Modern C++ Design, Addison- Wesley, 2001

http://sourceforge.net/projects/loki-lib/

(12)

...i to by było tyle

na dzisiaj!

Cytaty

Powiązane dokumenty

W systemach klasy performance management niezbędne jest również równoważenie mierników wewnętrznych z zewnętrznymi (benchmarkami), koszto- wych z niekosztownymi oraz

 Tworzenie obiektów klas produktów należących do tej samej rodziny..  Potrzeba

Adapter stanowi przykład niezwykle użyte- cznego wzorca projektowego, którego działanie polega na dostosowywaniu interfejsu istniejących już obiektów do interfejsu,

Na przykład użytkownik interfejsu narzędzi zawiera obiekty jako przyciski i menu, które doprowadzają żądania odzewu do użytkownika wejściowego.. Ale narzędzia nie mogą

dać przy tym użytkownikowi możliwość podstawienia swojej wyspecjalizowanej wersji. CreateFileDialog zamiast. zwykłego dialogu otwarcia pliku da nam dialog z podglądem

•Każdy observer jest powiadamiany o zmianie w danych w obiekcie subject.. •W odpowiedzi na powiadomienie o zmianie observer wysyła zapytanie w celu synchronizacji własnych danych

 Strategia umożliwia zdefiniowanie rodziny algorytmów realizujących to samo zadanie, ale różniących

Jeśli podsystemy każdej warstwy odwołują się wyłącznie do podsystemów należących do warstw znajdujących się bezpośrednio poniżej, architekturę taką nazywamy