Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory.

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Klasy abstrakcyjne i interfejsy
Programowanie obiektowe
Wzorce.
Zaawansowane metody programowania – Wykład V
Generics w .NET 2.0 Łukasz Rzeszot.
Obiektowe metody projektowania systemów Design Patterns STRATEGY.
Wzorce projektowe Paweł Ciach.
W ZORCE P ROJEKTOWE … czyli ktoś już rozwiązał Twoje problemy!
Szkolenie dla NaviExpert,
Szkolenie dla NaviExpert, Wprowadzenie.
Projektowanie oprogramowania
Organizacja Przedsięwzięć Programistycznych Projektowanie
Obiektowe metody projektowania systemów
Obiektowe metody projektowania systemów
Mapowanie różnych typów dziedziczenia do Javy
Dziedziczenie i jego rodzaje
Efektywne tworzenie oprogramowania 2008/2009 cvs.ii.uni.wroc.pl/eto2008.
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Wzorce projektowe w J2EE
Wstęp do programowania obiektowego
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
Wzorce projektowe (Design Patterns)
Instytut Tele- i Radiotechniczny WARSZAWA
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Technologie tworzenia aplikacji internetowych Wykład 3
MDA – Model Driven Architecture
Projektowanie obiektowe
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
WPROWADZENIE W ŚWIAT OBIEKTÓW
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Projektowanie obiektowe
Projektowanie obiektowe
Projektowanie obiektowe
Projektowanie obiektowe
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Programowanie obiektowe – język C++
Zawansowane techniki programistyczne
Systemy zarządzania treścią Wykład 5
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Model obiektowy bazy danych
Wzorce projektowe Jacek Matulewski
Diagram klas Kluczowymi elementami są: klasy (class)
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Zakres Wzorce projektowe ( -Adapter (str , wykład wzorce projektowe.
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)
Paweł Starzyk Obiektowe metody projektowania systemów
Wzorce Projektowe w JAVA
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Programowanie Zaawansowane
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Waldemar Bartyna Pytania egzaminacyjne 1.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
InMoST: Innowacyjne metody wytwarzania oprogramowania – II edycja (c) Bartosz Walter Wprowadzenie do obiektowości (1) Plan szkolenia – Część.
Inżynieria oprogramowania Wzorce konstrukcyjne WWW: Jacek Matulewski Instytut Fizyki, UMK.
Programowanie Obiektowe – Wykład 6
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Programowanie Obiektowe – Wykład 2
PGO Interfejsy Michail Mokkas.
JavaBeans by Paweł Wąsala
PGO - Projektowanie i implementacja pierwszych klas
PGO Dziedziczenie Michail Mokkas.
PGO Porównywanie obiektów
Zapis prezentacji:

Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory

2 Wzorce kreacyjne Wzorce kreacyjne abstrahują proces tworzenia instancji obiektu. Ukrywają informacje o tym jak obiekt jest tworzony; w efekcie pomagaja uniezależnić system od tego jak obiekty są tworzone i komponowane

3 Wzorce Factory Wzorce kreacyjne klas – wykorzystują dziedziczenie do tworzenia instancji – Factory Method Wzorce kreacyjne obiektów skupiają się na delegowaniu tworzenia instancji do innego obiektu – Abstract Factory

4 Wzorce Factory Idiom dla tworzenia obiektu – w j. Java operator new Wzorce kreacyjne tworzą nowe obiekty nie używając jawnie new. Można pisać metody tworzące instancje różnych obiektów, które można rozszerzyć do tworzenia instancji nowo-tworzonych obiektów bez zmiany kodu.

5 Factory Method: cel Zdefiniować interfejs do tworzenia obiektu; podklasy decydują, której klasy instancję utworzyć. F.M. poleca klasie przekazać tworzenie instancji do podklasy

6 Factory Method: wykorzystanie Wykorzystujemy gdy: - klasa nie może określić, które obiekty mają być utworzone

7 Factory method: uczestnicy Product – definiuje interfejs typu obiektów tworzonych za pomocą FactoryMethod ConcretProduct implementuje interfejs produktu Creator deklaruje FactoryMethod, która zwraca obiekt typu Product ConcretCreator nadpisuje FactoryMethod, aby zwrócić instancję ConcretProduct

8 Factory Method: przykład1

9 Factory Method: przykład2

10 Factory Method: przykład2 (2) Klasa MazeGame z metodą createMaze()

11 Factory Method: przykład2 (3)

12 Factory Method: przykład2 (4) Dodajemy metody (factory methods)

13 Factory Method: przykład2 (5)

14 Factory Method: przykład2 (6) createMaze() – bardziej złożony, ale elastyczny Klasa EnchantedMazeGame Metoda createMaze() z MazeGame jest dziedziczona

15 Factory Method: przykład2 (7) Metoda createMaze() z Mazegame przekazuje tworzenie obiektu maze do podklas (działanie wzorca F.M.) Korelacje: Creator => MazeGame ConcreteCreator => EnchantedMazeGame (MazeGame jest też ConcreteCreator) Product => MapSite ConcreteProduct => Wall, Room, Door, EnchantedWall, EnchantedRoom, EnchantedDoor

16 Abstract Factory: cel Dostarczyć interfejs dla utworzenia rodziny powiązanych lub zależnych obiektów bez specyfikowania ich konkretnych klas Klasa deleguje odpowiedzialność tworzenia instancji obiektu do innego obiektu (przez kompozycję), a F.M. wykorzystuje dziedziczenie Delegowany obiekt często wykorzystuje F.M. do tworzenia instancji

17 Abstract Factory: przykład Narzędzie tworzenia GUI z wieloma look-and-feels

18 Abstract Factory: zastosowanie System powinien być niezależny od tego jak są tworzone, komponowane i reprezentowane jego produkty System musi wykorzystać jedną ze zbioru rodziny produktów Rodzina powiązanych produktów produktów jest utworzona do wspólnego wykorzystania

19 Abstract Factory: struktura

20 Abstract Factory: zastosowanie Zastosowanie do MazeGame – MazeFactory kolekcja factory methods (równocześnie Abstractfactory i Concretefactory)

21 Abstract Factory: zastosowanie (1) Metoda createMaze() z klasy MazeGame ma jako parametr MazeFactory

22 Abstract Factory: zastosowanie (2) createMaze() deleguje odpowiedzialnośc za tworzenie obiektu labirynt do obiektu MazeFactory

23 Abstract Factory: zastosowanie (3) Łatwo rozszerzyć MazeFactory do tworzenia innych

24 Abstract Factory: konsekwencje Izoluje klientów od implementacji konkretnych klas Łatwa wymiana rodziny produktów, ponieważ poszczególna konkretna fabryka może wspomagać rodzinę produktów Wspomaga wykorzystanie produktów z jednej rodziny - nowy rodzaj produktu wymaga zmiany interfejsu Abstractfactory

25 Abstract Factory: implementacja Aplikacje typowo wykorzystują jedną instancję konkretnej fabryki Wykorzystać w tym celu wzór Singleton