io(55 57)
























55-57
55.Jaka jest istota konstrukcyjnych wzorców
projektowych? Przedstaw
przykład wzorca konstrukcyjnego. 1
56.Jaka jest istota strukturalnych
wzorców projektowych? Przedstaw
przykład wzorca strukturalnego. 1
57.Jaka jest istota czynnościowych
wzorców projektowych? Przedstaw.. 2
przykład wzorca czynnościowego. 2
 


55.Jaka jest istota konstrukcyjnych
wzorców projektowych?
Przedstaw przykład
wzorca konstrukcyjnego.

- służą
do
pozyskiwania obiektów;

- szczegółowo opisują jaki obiekt może
zostać stworzony;

- uniezależniają
kod od typów tworzonych

obiektów (zależne jest to tylko od parametrów konfiguracyjnych);

Przykłady:

-Singelton-

-Zapewnia powołanie tylko jednej instancji obiektu w całej aplikacji
i kontrolowany dostęp;

-Obiekt powołany wg tego wzorca
jest globalnym punktem dostępu do instancji danej klasy ;

-Wzorzec może być zmodyfikowany do tworzenia
określonej liczby instancji danej
klasy (>1);

-Funkcje wzorca: utworzenie obiektu,
inicjalizacja obiektu, punkt dostępu, modyfikacja
obiektu;

-Prostszym rozwiązaniem jest: globalnie
dostępna zmienna
statyczną

przechowująca
referencję
do
obiektu;

-metoda fabrykująca;

Fabryka nie
może przewidzieć, jakie
obiekty i
w jaki
sposób tworzyć;

Klient zna tylko interfejs
klasy

abstrakcyjnej;

Informacje o sposobie i odpowiedzialność
za tworzenie obiektu znajdują
się
w implementacjach "metody tworzącej" klas
pochodnych;

Można tworzyć
domyślny produkt, ale też dać

użytkownikowi możliwość
podstawienia swojej
wyspecjalizowanej wersji;

-fabryka abstrakcyjna;

-fabryka;

-Fabryka nowych obiektów w zdefiniowanych klasach wzorcowych; Wszystkie
klasy wzorcowe
mają
metody o
tej samej nazwie, ale o innych realizacjach;
Zaleta
możliwość modyfikowania
klas wzorcowych (tworzących) w jednym

miejscu projektu;

Popularne
wersje
Fabryki: Metoda

Fabrykująca, Fabryka
Abstrakcji, Budowniczy, Prototyp;

-budowniczy;

-prototyp. Podsumowanie:

Singleton

pojedyncza instancja obiektu;

Metoda Fabrykująca

tworzenie obiektów w klasach
pochodnych;

Fabryka Abstrakcyjna
tworzenie rodzin obiektów bez wydzielonych
klas fabryk;

Budowniczy
ukrycie
szczegółów

tworzenia
za interfejsem zarządcy;

Prototyp
tworzenie kopii na podstawie w pełni
zainicjalizowanej instancji;

56.Jaka jest istota strukturalnych
wzorców projektowych?
Przedstaw przykład
wzorca strukturalnego.

-Stosowany do łączenia obiektów w większe
struktury;

-Zastosowanie np. w implementacji

złożonego interfejsu użytkownika;
Przykłady:

-Fasada,

-Ujednolicony i prostszy interfejs do struktury złożonych podsystemów;

-Separacja klienta od złożonych podsystemów;

-Wybór odpowiedniej struktury dla żądania

klienta;

-Możliwości
zmian w ukrywanych podsystemach;

-Przykłady: w bibliotekach Javy: klasy
pakietu java.sql
(Statement,
ResultSet);
wejście usług w Service Oriente

Architecture (SOA);

-Adapter,

-Konwertuje
(dopasowuje) interfejsy jednej
klasy do interfejsu innej klasy;

-Umożliwia klasom o różnych
interfejsach

współpracę w jednym programie;

-Niewielka
elastyczność

adaptacji podlega tylko jedna
klasa (Adaptee), bez

jej podklas;

-Zmiana
zachowania klasy Adapter może
zmienić zachowanie klasy dostosowywanej

Adaptee;

-Dwa sposoby realizacji:

-dziedziczenie,

-kompozycja;

-Most,

-Kompozyt,

-System złożony z podsystemów o
strukturze drzewiastej ( reprezentacja związku "całość-część");

-Wspólny interfejs dla klas węzłów i
liści
ujednolicone
widzenie kontenerów i obiektów składowanych;

-Łatwo rozszerzalny o nowe
podsystemy
implementujące
(określony interfejs);

-Przykłady: Przykład w bibliotekach Javy:

kontenery (Panel, JComponent,
);

-Dekorator,

-Waga Piórkowa,

-Zastąpienie wielu obiektów jednym współdzielonym
z opisem stanu zubożonym

w
porównaniu z pierwotnym obiektem;

-Zamiast przechowywać wewnątrz atrybuty

stanu, obiekty dostają
wartości z zewnątrz jako parametry wywołania metod;

-Zalety: Ograniczenie liczby tworzonych

instancji obiektów; Przesunięcie
części
danych z obiektu do przekazywanych

parametrów metod;

-Wady: Zwiększony koszt wywoływania

metod obiektów; Uzyskuje
się przyspieszenie programów operujących na wielu niezbyt złożonych obiektach;

- Przykład: zbiory obiektów "znaków
literowych";

-Proxy;

57.Jaka jest istota czynnościowych wzorców
projektowych? Przedstaw

przykład wzorca czynnościowego.

-W
celu definiowania komunikacji
pomiędzy obiektami;

-Pomagają kontrolować przepływ danych w

złożonym programie;

-Przykłady:

-Iterator,

-Upraszcza przemieszczanie
po
kolekcji danych (np. liście), z wykorzystaniem

standardowego interfejsu;

-Nie
wymaga znajomości
wewnętrznej struktury kolekcji
danych;

-Umożliwia równoczesne przeglądanie
kilku

kolekcji

Przykład:W bibliotekach Javy: iterator w kolekcjach z pakietu java.util;

Łańcuch Odpowiedzialności,

-Zestaw klas obsługuje żądanie w określonej kolejności;

-Żądanie jest przekazywane
pomiędzy klasami w określonym
łańcuchu;

-Czasami ostatni obiekt łańcucha
obsługuje

wszystkie żądania;

-Przykład: Realizacja
w Javie: Frame -> Panel -> Component;

-Stan,

-Tworzy obiekty pochodne
z bazowej klasy

State
dla
każdego stanu, w którym może znaleźć się aplikacja;

- Przełączanie pomiędzy obiektami stanu,

gdy zmieni
się stan aplikacji;

-Wraz ze zmianą stanu i tym samym
obiektu może
zmienić się
zachowanie

obiektu (inne
implementacje
metod);

-Eliminuje
złożone instrukcje warunkowe

(np. switch) w metodach obiektu;

-Wada: powstaje wiele małych klas;

-Zaleta: upraszcza program;

-Mediator,

-Mediatora
stanowi "zarządcę
obiektów";

-Wprowadza
luźniejsze powiązania
pomiędzy klasami
obiekty znają

Mediatora a nie koniecznie inne
obiekty;

-Zmiany stanu obiektów są
za jego pośrednictwem (odpowiednich metod)

propagowane
do
zainteresowanych

obiektów;

-Często jest specjalizowany dla jednego projektu;

-Obserwator,

-Strategia;

-Potrzeba kilku wariantów algorytmu;

-Wybór określonego wariantu poprzez
powołanie
obiektu pochodnego do
zdefiniowanego interfejsu
bazowego lub
klasy abstrakcyjnej;

-Każda wersja
algorytmu jest implementowana w osobnej klasie;

-Zalety:

-algorytm może używać danych, których
klient nie zna;

-hermetyzacja algorytmów w oddzielnych klasach pozwala na ich modyfikację

niezależnie od kontekstu;

-o
rozwiązanie zastępuje
instrukcje wyboru
lub
warunkowe;

 








Wyszukiwarka

Podobne podstrony:
Anamnesis55 3i str 55 57
53 54 55 56 57(4)
amd102 io pl09
java io InvalidClassException
io port programming 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46a 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46a
acu 250 io pl14
55 Schemat elektryczny HT3101

więcej podobnych podstron