• Nie Znaleziono Wyników

Strukturalne wzorce projektowe

N/A
N/A
Protected

Academic year: 2021

Share "Strukturalne wzorce projektowe"

Copied!
16
0
0

Pełen tekst

(1)

Strukturalne wzorce

projektowe

(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.

(3)

Rodzaje wzorców

- Adapter

- Bride (most)

- Facade (fasada) - Proxy (pośrednik)

- Flyweight (waga piórkowa) - Composite (kompozyt)

(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.

(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ć

(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.

(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

(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.

(9)

Facade – diagram klas

(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.

(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

(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.

(13)

Flyweight – diagram klas

(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

(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.

(16)

Composite – diagram klas

Component – definiuje interfejs dla obiektów (zarządzanie i dostęp)

Cytaty

Powiązane dokumenty

Przykładowa odpowiedź: Alkinoos zgodził się na wyjazd Odysa, ponieważ rozumiał jego tęsknotę

- każdy magnes posiada 2 bieguny: północny (N) i południowy (S), których nie da się od siebie oddzielić, - bieguny jednoimienne magnesów odpychają się,

Po dokonanej (moderowanej przez nauczyciela) prezentacji wyników prac przez liderów 3 grup, nauczyciel dokonuje z pomocą uczniów podsumowania poznanych wiadomości na

Odmiennych metod pomiaru podobieństwa należy szukać wtedy, gdy e~ekt końcowy klasyfikacji przedstawiony jest w postaci jed- neco podziału wynikowego, a nie w formie

WAN (Wide Area Network) — sieć rozległa; zasięg - tysiące kilometrów (kraje, kontynenty, np. sieć internet).. Ze względu na sposób połączenia komputerów

Nie- dawno minister zdrowia (ten sam, który jako prezes NIL domagał się dwóch średnich krajowych dla leka- rzy bez specjalizacji) zapowiedział, że podwyżek dla lekarzy

Pojawia się ona w ramach dialogu Sokratesa z samym sobą i ponadto, od- powiada na pytanie o rzeczy, które w świetle wcześniejszych partii tekstu są naj- ważniejsze — wprost

• Pamiętaj o poleceniu z poprzedniej lekcji: „Zwróć uwagę na ilość wapnia w swojej codziennej diecie (obserwuj, czy Twój organizm dostaje codziennie porcję tego