Wykład
Wprowadzenie do wzorców
projektowych
dr inż. Włodzimierz Dąbrowski
Podstawy inżynierii
oprogramowania
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?)
W.Dąbrowski, Budowa i integracja systemów informacyjnych, Wykład 2, Slajd 32
marzec, 2004; PB
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