Wykład 6
Wprowadzenie do wzorców projektowych
dr inż. Włodzimierz Dąbrowski
Polsko Japońska Wyższa Szkoła Technik Komputerowych Katedra Systemów Informacyjnych, pokój 310
Budowa i integracja
systemów informacyjnych
Plan wykładu
Co to jest wzorzec projektowy?
Po co stosować wzorce?
Do czego można stosować wzorce?
Przykłady prostych wzorców projektowych
Paradygmat obiektowy
Czym jest obiekt??
Perspektywy
– na poziomie koncepcji
zbiór odpowiedzialności
– na poziomie specyfikacji
zbiór metod
– na poziomie implementacji
kod + dane
O obiektach
Obiekt posiada wiedzę o swojej przynależności
Obiekt znajduje się konkretnym stanie
Obiekt posiada określoną odpowiedzialność
Zalecenia projektowe
Obiekt musi
posiadać określony rodzaj odpowiedzialności
być odpowiedzialny za własne działania
odpowiedzialność musi być jasno określona
Przypomnienie
Obiekt
Klasa, klasa abstrakcyjna
Interfejs
Hermetyzacja
Dziedziczenie
Polimorfizm
Szczególne metody
Wzorzec projektowy
Co można odnaleźć w rozwiązaniu dobrym, czego nie ma w złym?
Co można odnaleźć w rozwiązaniu złym, czego nie ma w dobrym?
Pierwsze wzorce
Za twórcę WP uważany jest Christopher Alexander
Wzorce projektowe dotyczyły rozwiązań architektonicznych
Pojęcie WP
sposób rozwiązania problemu w określonym kontekście
„WP opisuje problem, który się
stale powtarza, określa zasadniczą część jego rozwiązania tak, aby
można było je zastosować wiele
razy za każdym razem w nieco inny sposób …”
Elementy opisu wzorców
Nazwa
Intencja
Problem
Rozwiązanie
Uczestnicy
Konsekwencje
Wzorzec fasady
„Dostrajanie jednolitego interfejsu do zbioru interfejsów
podsystemu…”
Fasada
Intencja: uproszczony sposób
korzystania z istniejącego systemu
Problem: Potrzeba wykorzystania części możliwości istniejącego
systemu
Rozwiązanie: Nowy interfejs do istniejącego systemu
Fasada
Konsekwencje: Upraszcza korzystanie z systemu
Implementacja:
–nowa klasa o pożądanym interfejsie – wykorzystanie istniejących funkcji
systemu
Adapter
„Dostosowanie interfejsu klasy do interfejsu, którego oczekuje
użytkownik.
Umożliwia współpracę klas, która bez jego zastosowania nie byłaby możliwa ze względu na ich
niezgodne interfejsy…”
Adapter
Intencja: dopasowanie istniejącego obiektu do określonego interfejsu
Problem: obiekt zachowuje się tak jak trzeba, ale ma nieodpowiedni interfejs
Adapter
Rozwiązanie: obudowanie obiektu pożądanym interfejsem
Uczestnicy: Adapter, Adaptowany, Cel, Użytkownik
Konsekwencje: dopasowanie istniejących obiektów do
tworzonych struktur i uniknąć ograniczeń
Podsumowanie
Problemy
• Porównać wzorzec fasady ze wzorcem adaptera (jakie mają wspólne cechy, a co je różni?)
??
Literatura
[1] Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns: Elements od Reusable
Object-Oriented Software, Addison-Wesley, 1995
[2] Shalloway A., Trott J.R., Projektowanie
zorientowane obiektowo. Wzorce projektowe, Helion 2001; ISBN 83-7197-831-6