BYT 2004 Strukturalne wzorce projektowe

background image

29 czerwca 2021

Jakub Kosowicz

1

Strukturalne wzorce

projektowe

background image

29 czerwca 2021

Jakub Kosowicz

2

Wzorce strukturalne

Wzorce strukturalne opisują łącznia klas

obiektów w większe struktury. Wzorce klas
i obiektów różnią się tym, że wzorzec klasy
opisuje jak dziedziczenie może być
używane w celu dostarczenia bardziej
użytecznych interfejsów
programistycznych, a wzorzec obiektu
opisuje jak obiekty mogą być łączone w
większe struktury poprzez zawieranie się
jednych obiektów w innych.

background image

29 czerwca 2021

Jakub Kosowicz

3

Rodzaje wzorców

- Adapter
- Bride (most)
- Facade (fasada)
- Proxy (pośrednik)
- Flyweight (waga piórkowa)
- Composite (kompozyt)

background image

29 czerwca 2021

Jakub Kosowicz

4

Adapter

Wzorzec Adapter konwertuje interfejs jednej

klasy na interfejs innej klasy. Używamy
tego wzorca, jeśli chcemy, żeby dwie
niezwiązane ze sobą klasy współpracowały
ze sobą w jednym projekcie. Istnieją dwa
sposoby realizacji : poprzez dziedziczenie i
kompozycję. Pierwsza metoda opiera się
na tworzeniu klasy pochodnej a druga na
tworzeniu klasy wewnętrznej.

background image

29 czerwca 2021

Jakub Kosowicz

5

Adapter - diagram klas

Target – definiuje interfejs którego używa klient
Adapter – adoptuje interfejs Adaptee do interfejsu Target
Adaptee – definiuje istniejący interfejs który trzeba

zaadoptować

background image

29 czerwca 2021

Jakub Kosowicz

6

Bridge (most)

Wzorzec Bridge może w pierwszym momencie

wydawać się podobny do wzorca Adapter.
Jest to również klasa konwertująca jeden
rodzaj interfejsu na inny. Przeznaczeniem
adaptera jest stworzenie interfejsu dla
istniejącej klasy tak aby wyglądał na interfejs
innej klasy. Wzorzec Bridge odseparowuje
interfejs od jego implementacji. Dzięki temu
można zmieniać implementację bez potrzeby
modyfikacji kodu w programie.

background image

29 czerwca 2021

Jakub Kosowicz

7

Bridge – diagram klas

Abstraction – abstrakcyjny interfejs z którego korzystają klasy

impl.

Implementor – definiuje interfejs klasy implementującej
ConcreteImplemetor – klasy implementujące
RefinedAbstraction – rozszerzenie klasy Abstraction

background image

29 czerwca 2021

Jakub Kosowicz

8

Facade (fasada)

Wzorzec ten służy do obudowywania zboru

złożonych klas i dostarcza dla nich
prostszego interfejsu. Fasada pozwala
uprościć złożoność wynikającą z wielu
skomplikowanych interfejsów w
podsystemach ale takie uproszczenie
często zmniejsza elastyczność
pokrywanych klas.

background image

29 czerwca 2021

Jakub Kosowicz

9

Facade – diagram klas

background image

29 czerwca 2021

Jakub Kosowicz

10

Proxy (pośrednik)

Wzorzec Proxy wykorzystywany jest do

reprezentowania skomplikowanego obiektu
lub obiektu którego wytworzenie wymaga
dużego nakładu pracy. Jeśli tworzenie
obiektu jest czasochłonne i
zasobnochłonne, Proxy pozwala odłożyć
akt tworzenia tego obiektu na czas w który
obiekt będzie rzeczywiście potrzebny;.
Proxy posiada takie same metody jak
pełny obiekt który reprezentuje.

background image

29 czerwca 2021

Jakub Kosowicz

11

Proxy – diagram klas

Proxy – m.in. kontroluje dostęp do RealSubject, odpowiada za

jego tworzenie i kasowanie

Subject – interfejs dla prawdziwego obiektu i Proxy
RealSubject – definiuje prawdziwy obiekt który Proxy

reprezentuje

background image

29 czerwca 2021

Jakub Kosowicz

12

Flyweight (waga piórkowa)

Wzorzec Flyweight pozwala uniknąć dużej

liczby klas. Jeśli musimy utworzyć dużą
liczbę instancji małych klas
reprezentujących dane, można znacząco
zredukować liczbę instancji jeśli podstawy
są takie same.Dany wzorzec dostarcza
metody pozwalającej na obsługę takich
klas. Definiowany jest podział nadane
wewnętrzne, będące częścią instancji i
zewnętrzne przekazywane jako parametry.

background image

29 czerwca 2021

Jakub Kosowicz

13

Flyweight – diagram klas

background image

29 czerwca 2021

Jakub Kosowicz

14

Flyweight – diagram klas

FlyweightFactory – tworzy i zarządza obiektami Flywight
Client – zachowuje referencje do Flyweight
Flyweight – deklaruje interfejs
ConcreteFlyweight – implementuje interfejs Flyweight
UnsharedConcreteFlyweight – nieużywany – nie każda

podklasa musi być udostępniana

background image

29 czerwca 2021

Jakub Kosowicz

15

Composite (kompozyt)

Wzorzec kompozytu pozwala na jednolite

traktowanie komponentów i obiektów z
nich złożonych poprzez specyfikację ich
wspólnego interfejsu.

background image

29 czerwca 2021

Jakub Kosowicz

16

Composite – diagram klas

Component – definiuje interfejs dla obiektów (zarządzanie i

dostęp)

Leaf – reprezentuje „liście”
Composite – definiuje obiekty mające „dzieci


Document Outline


Wyszukiwarka

Podobne podstrony:
BYT 2004 Zarzadzanie komunikacja w projekcie
BYT Wzorce projektowe wyklady z 10 i 24 11 2006
BYT 2004 Projekt informatyczny podstawowe zagadnienia
BYT 2004 Jakosc w projekcie informatycznym v1
BYT 2004 Jakosc w projekcie informatycznym v2
BYT 2004 Projekt informatyczny podstawowe zagadnienia
PN EN 1990 2004 AC Podstawy projektowania konstrukcji poprawka
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
Wzorce projektowe ściaga
PN EN 1990 2004 A1 Podstawy projektowania konstrukcji zmiana
Projektowanie zorientowane obiektowo Wzorce projektowe Wydanie II
Fundusze strukturalne i system projektowania UE
J2EE Wzorce projektowe Wydanie 2
BYT 2003 Komunikacja w zespole projektowym
BYT 2004 Quality system
BYT 2004 Cykl zycia oproprogramowania

więcej podobnych podstron