background image

Wykład

Wprowadzenie do wzorców 

projektowych

dr inż. Włodzimierz Dąbrowski

Podstawy inżynierii 

oprogramowania

background image

Plan wykładu

Co to jest wzorzec projektowy?

Po co stosować wzorce?

Do czego można stosować wzorce?

Przykłady prostych wzorców projektowych

background image

Paradygmat obiektowy

Czym jest obiekt??

Perspektywy

na poziomie koncepcji

zbiór odpowiedzialności

na poziomie specyfikacji

zbiór metod 

na poziomie implementacji

kod + dane

background image
background image

O obiektach

Obiekt posiada wiedzę o swojej 
przynależności

Obiekt znajduje się konkretnym 
stanie

Obiekt posiada określoną 
odpowiedzialność

background image

Zalecenia projektowe

Obiekt musi 

posiadać określony rodzaj 
odpowiedzialności

być odpowiedzialny za własne 
działania

odpowiedzialność musi być jasno 
określona

background image

Przypomnienie

Obiekt

Klasa, klasa abstrakcyjna

Interfejs

Hermetyzacja

Dziedziczenie

Polimorfizm

Szczególne metody

background image

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?

background image

Pierwsze wzorce

Za twórcę WP uważany jest 
Christopher Alexander

Wzorce projektowe dotyczyły 
rozwiązań architektonicznych

background image

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 …”

background image
background image

Elementy opisu wzorców

Nazwa

Intencja

Problem

Rozwiązanie

Uczestnicy

Konsekwencje

background image

Wzorzec fasady

„Dostrajanie jednolitego interfejsu 
do zbioru interfejsów 
podsystemu…”

background image

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

background image

Fasada

Konsekwencje: Upraszcza 
korzystanie z systemu

Implementacja: 

nowa klasa o pożądanym interfejsie

wykorzystanie istniejących funkcji 

systemu

background image
background image
background image

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…”

background image
background image
background image
background image
background image
background image
background image
background image
background image
background image
background image

Adapter

Intencja: dopasowanie 
istniejącego obiektu do 
określonego interfejsu

Problem: obiekt zachowuje się tak 
jak trzeba, ale ma nieodpowiedni 
interfejs

background image

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ń

background image

Podsumowanie

background image

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

background image

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