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 5753 54 55 56 57(4)amd102 io pl09java io InvalidClassExceptionio port programming 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46a 3ogqzy3bscrrpgv753q3uywjfexgwwoiiffd46aacu 250 io pl1455 Schemat elektryczny HT3101więcej podobnych podstron