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

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Klasy abstrakcyjne i interfejsy
Programowanie obiektowe
Zaawansowane metody programowania – Wykład V
Static, const, volatile.
Generics w .NET 2.0 Łukasz Rzeszot.
Obiektowe metody projektowania systemów Design Patterns STRATEGY.
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
Wzorce Projektowe Michał Gryglicki
W ZORCE P ROJEKTOWE … czyli ktoś już rozwiązał Twoje problemy!
Szkolenie dla NaviExpert,
Szkolenie dla NaviExpert, Wprowadzenie.
Projektowanie oprogramowania
Organizacja Przedsięwzięć Programistycznych Projektowanie
Obiektowe metody projektowania systemów
Obiektowe metody projektowania systemów
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Język Java Wielowątkowość.
Wzorce projektowe (Design Patterns)
Wstęp do kontenerów IoC
Message-Driven Bean.
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Podstawy programowania II
W większości języków programowania biblioteki wejścia/wyjścia ukrywają szczegóły obsługi poszczególnych mediów pod abstrakcją strumienia (ang. stream).
Projektowanie obiektowe
Tworzenie aplikacji mobilnych
Programowanie obiektowe III rok EiT
Java – coś na temat Klas Piotr Rosik
Programowanie obiektowe
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Projektowanie obiektowe
Projektowanie obiektowe
Projektowanie obiektowe
Wybrane zagadnienia relacyjnych baz danych
Programowanie obiektowe – język C++
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Diagram klas Kluczowymi elementami są: klasy (class)
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Kurs języka C++ – wykład 4 ( )
Obiektowe metody projektowania systemów The Composite DESIGN PATTERN.
Hibernate Podstawy.
Obiektowe metody projektowania systemów Adapter. Wstęp: „Dostosowanie interfejsu klasy do interfejsu, którego oczekuje użytkownik. Adapter umożliwia współprace.
Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)
Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Paweł Starzyk Obiektowe metody projektowania systemów
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Programowanie sieciowe w Javie RMI Wykład 11 mgr inż. Michał Misiak.
Wzorce Projektowe w JAVA
Programowanie Zaawansowane
ZARZĄDZANIE DZIAŁEM SPRZEDAŻY
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
InMoST: Innowacyjne metody wytwarzania oprogramowania – II edycja (c) Bartosz Walter Wprowadzenie do obiektowości (1) Plan szkolenia – Część.
Inżynieria oprogramowania Wzorce konstrukcyjne WWW: Jacek Matulewski Instytut Fizyki, UMK.
Inżynieria oprogramowania Wzorce strukturalne WWW: Jacek Matulewski Instytut Fizyki, UMK.
Programowanie Obiektowe – Wykład 6
Wątki, programowanie współbieżne
(według:
(c) Krzysztof Barteczko 2014
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie Obiektowe – Wykład 2
PGO Interfejsy Michail Mokkas.
Strukturalne wzorce projektowe
BYDGOSKI FESTIWAL NAUKI
Zapis prezentacji:

Zakres Wzorce projektowe ( -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 Wzorce projektowe Umożliwienie współpracy obiektów o niezgodnych typach Tłumaczenie protokołów obiektowych

3 Adapter: struktura

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 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 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 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 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 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 Composite: struktura

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 Composite: konsekwencje Elastyczna definicja struktur drzewiastych Proste dodawanie nowych komponentów Proste i spójne zarządzanie strukturą o dowolnej liczbie elementów

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 Flyweight: struktura

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

Ciekawy przykład ( attern/flyweight.html ) 16 Flyweight: struktura

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