Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zakres Wzorce projektowe (http://wazniak.mimuw.edu.pl/index.php?title=Zaawansowane_projektowanie_obiektowe) -Adapter (str. 25-28, wykład wzorce projektowe.

Podobne prezentacje


Prezentacja na temat: "Zakres Wzorce projektowe (http://wazniak.mimuw.edu.pl/index.php?title=Zaawansowane_projektowanie_obiektowe) -Adapter (str. 25-28, wykład wzorce projektowe."— Zapis prezentacji:

1 Zakres Wzorce projektowe (http://wazniak.mimuw.edu.pl/index.php?title=Zaawansowane_projektowanie_obiektowe) -Adapter (str , wykład wzorce projektowe część 1) - Composite (str , wykład wzorce projektowe część 1) - Flyweight (str. 9-12, wykład wzorce projektowe część 3)

2 2 Wzorce projektowe Umożliwienie współpracy obiektów o niezgodnych typach Tłumaczenie protokołów obiektowych

3 3 Adapter: struktura

4 4 Adapter: uczestnicy Target – definiuje interfejs specyficzny dla klienta Client – współpracuje z obiektami typu Target Adaptee – posiada interfejs wymagający adaptacji Adapter – adaptuje interfejs Adaptee do interfejsu Target

5 5 Adapter: konsekwencje Duża elastyczność – pojedynczy Adapter może współpracować z wieloma obiektami Adaptee naraz – Adapter może dodawać funkcjonalność do Adaptee Utrudnione pokrywanie metod Adaptera – konieczne utworzenie podklas obiektu Adaptee i bezpośrednie odwołania do nich Kompozycja i dziedziczenie jako mechanizmy adaptacji

6 6 Adapter: przykład //We have an old outlet that only accepts two-pronged plugs public interface UngroundedOutlet { public void TwoProngPlugin(); public void TwoProngUnplug(); } //And our new plug has three prongs public class GroundedPlug { public void ThreeProngPlugin(); public void ThreeProngUnplug(); }

7 7 public class GroundedAdapter implements UngroundedOutlet { GroundedPlug plug; public GroundedAdapter(GroundedPlug plug) { this.plug = plug; } public void TwoProngPlugIn() { plug.ThreeProngPlugin(); } public void TwoProngUnplug() { plug.ThreeProngUnplug(); }

8 8 Adapter: przykład (3) public class testPlug { public static void main(String[] args) { //create the three-prong plug Plug groundedPlug = new GroundedPlug(); //create the adapter UngroundedOutlet adapter = new GroundedAdapter(groundedPlug); //plug in the adapter to the outlet adapter.TwoProngPlugIn(); }

9 9 Composite: Cel Organizowanie obiektów w struktury drzewiaste reprezentujące relacje typu całość-część Jednolita obsługa pojednczych obiektów i złożonych struktur

10 10 Composite: struktura

11 11 Composite: Uczestnicy Component – deklaruje wspólny interfejs dla obiektów znajdujących się strukturze – implementuje wspólną funkcjonalność wszystkich obiektów Leaf – reprezentuje węzeł bez potomków Composite – reprezentuje węzeł z potomkami – przechowuje referencje do potomków – deleguje otrzymane polecenia do potomków

12 12 Composite: konsekwencje Elastyczna definicja struktur drzewiastych Proste dodawanie nowych komponentów Proste i spójne zarządzanie strukturą o dowolnej liczbie elementów

13 13 Flyweight: cel Współdzielenie obiektów w celu zwiększenia wydajności Wydzielenie z obiektu stanu wewnętrznego (współdzielonego) i zewnętrznego (specyficznego)

14 14 Flyweight: struktura

15 d/jw /jw designpatterns.html 15 Flyweight: struktura

16 Ciekawy przykład (http://www.javacamp.org/designP attern/flyweight.html ) 16 Flyweight: struktura

17 17 Flyweight: uczestnicy Flyweight – podlega współdzieleniu między klientów – definiuje interfejs do przyjmowania i odtwarzania stanu zewnętrznego obiektu Concrete Flyweight – przechowuje stan wewnętrzny (współdzielony) – jest niezależny od kontekstu (z wyjątkiem stanu zewnętrznego) Flyweight Factory – tworzy i przechowuje obiekty Flyweight Client – otrzymuje obiekty Flyweight za pośrednictwem Flyweight Factory

18 18 Flyweight: konsekwencje Zmniejszenie wymagań pamięciowych programu – zmniejszenie ogólnej liczby obiektów – zmniejszenie rozmiaru stanu obiektów – stan zewnętrzny może być przechowywany lub wyliczany Wzrost złożoności obliczeniowej – dodatkowy nakład na zarządzanie stanem zewnętrznym


Pobierz ppt "Zakres Wzorce projektowe (http://wazniak.mimuw.edu.pl/index.php?title=Zaawansowane_projektowanie_obiektowe) -Adapter (str. 25-28, wykład wzorce projektowe."

Podobne prezentacje


Reklamy Google