Obiektowe metody projektowania systemów

Slides:



Advertisements
Podobne prezentacje
C++ wykład 9 ( ) Szablony.
Advertisements

Wzorce Projektowe Bartosz Baliś, Na podstawie
Klasy abstrakcyjne i interfejsy
Programowanie obiektowe
Programowanie obiektowe
Klasy i obiekty.
Zaawansowane metody programowania – Wykład V
Generics w .NET 2.0 Łukasz Rzeszot.
Obiektowe metody projektowania systemów Design Patterns STRATEGY.
Bezpieczeństwo wyjątków w C++: OpenGL
Programowanie w środowisku sieciowym
Budowa i integracja systemów informacyjnych
Programowanie obiektowe w Javie
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
W ZORCE P ROJEKTOWE … czyli ktoś już rozwiązał Twoje problemy!
Szkolenie dla NaviExpert,
Organizacja Przedsięwzięć Programistycznych Projektowanie
Obiektowe metody projektowania systemów
Obiektowe metody projektowania systemów Command Pattern.
C++ wykład 6 ( ) Polimorfizm.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Inżynieria Oprogramowania dla Fizyków
Wykład 8 Wojciech Pieprzyca
Wzorce projektowe w J2EE
Wstęp do programowania obiektowego
czyli (anty)wzorzec Singleton
Wzorce projektowe (Design Patterns)
Wstęp do kontenerów IoC
Modelowanie w Visual Studio 2010
Test Doubles Adam Gabryś , v1.1,
Projektowanie obiektowe
Generatory dokumentacji kodu źródłowego
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Programowanie obiektowe – zastosowanie języka Java SE
WPROWADZENIE W ŚWIAT OBIEKTÓW
Java – coś na temat Klas Piotr Rosik
JAVA.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Projektowanie obiektowe
Projektowanie obiektowe
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
Unified Modeling Language - Zunifikowany Język Modelowania
Programowanie w języku C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
K URS JĘZYKA C++ – WYKŁAD 10 ( ) Szablony.
Programowanie strukturalne i obiektowe C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Wzorce projektowe Jacek Matulewski
Diagram klas Kluczowymi elementami są: klasy (class)
K URS JĘZYKA C++ – WYKŁAD 6 ( ) Polimorfizm.
Obiektowe metody projektowania systemów The Composite DESIGN PATTERN.
Design Patterns.: Visitor :.. Plan prezentacji 1. Trochę statystyk. 2. Zadanie problemowe. 3. Rozwiązanie… Visitor. 4. Visitor w UML (a,b,c). 5. Implementacja.
Obiektowe metody projektowania systemów Adapter. Wstęp: „Dostosowanie interfejsu klasy do interfejsu, którego oczekuje użytkownik. Adapter umożliwia współprace.
Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)
Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory.
Paweł Starzyk Obiektowe metody projektowania systemów
Strukturalna metodyka projektowania systemu informatycznego.
.NET i Bazy Danych Projekt: Wadim Grasza.
Wzorce Projektowe w JAVA
Programowanie Zaawansowane
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Inżynieria oprogramowania Wzorce konstrukcyjne WWW: Jacek Matulewski Instytut Fizyki, UMK.
Programowanie Obiektowe – Wykład 6
Wzorzec MVC na przykładzie CakePHP
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Programowanie Obiektowe – Wykład 2
Zapis prezentacji:

Obiektowe metody projektowania systemów Builder design pattern

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.

Plan: Powody utworzenia, motywacja Zastosowanie Przykłady implementacji w C++ Struktura i elementy składowe Konsekwencje użycia Powiązania z innymi wzorcami Bibliografia

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

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

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 };

Struktura i elementy składowe

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.

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

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.

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/

...i to by było tyle na dzisiaj!