Wzorce projektowe. dr inż. Marcin Pietroo

Podobne dokumenty
Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

1) Wzorzec projektowy Adapter. Zastosowanie:

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Wypożyczalnia VIDEO. Technologie obiektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Testowanie oprogramowania Wzorce projektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Projektowanie obiektowe Wzorce projektowe

Przykładowa implementacja

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Wprowadzenie do programowania aplikacji mobilnych

Programowanie obiektowe - 1.

Zaawansowane programowanie w C++ (PCP)

Wzorce projektowe Michał Węgorek

Programowanie obiektowe

problem w określonym kontekście siły istotę jego rozwiązania

Technologie obiektowe

Programowanie w języku Java WYKŁAD

Interfejsy i klasy wewnętrzne

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Aplikacje RMI

Programowanie obiektowe

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Modelowanie i Programowanie Obiektowe

Programowanie obiektowe

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Enkapsulacja, dziedziczenie, polimorfizm

Programowanie współbieżne i rozproszone

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Technologia Programowania 2016/2017 Wykład 4

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Programowanie obiektowe

Wzorce projektowe i refaktoryzacja

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

Programowanie obiektowe

Wykład 8: klasy cz. 4

Perspektywa obiektowości

Spis treści. Wprowadzenie 15

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp.

Wykład 1 Inżynieria Oprogramowania

Język Java część 2 (przykładowa aplikacja)

Język programowania. Andrzej Bobyk

Programowanie Zespołowe

Wzorce projektowe [ wstęp ]

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Dziedziczenie. Tomasz Borzyszkowski

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Decorator (dekorator)

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

Dokumentacja do API Javy.

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

hierarchie klas i wielodziedziczenie

Wywoływanie metod zdalnych

Zaawansowane programowanie obiektowe - wykład 5

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Podstawy Programowania Programowanie Obiektowe

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Dziedziczenie. dr Jarosław Skaruz

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Command (action, transaction, polecenie)

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Podstawy Programowania Obiektowego

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Programowanie obiektowe

Technologie i usługi internetowe cz. 2

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Remote Method Invocation 17 listopada 2010

Wprowadzenie. Dariusz Wawrzyniak 1

Wzorce projektowe kreacyjne

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Rysunek 1: Przykłady graficznej prezentacji klas.

Programowanie w języku Java WYKŁAD

Paradygmaty programowania

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy

Transkrypt:

Wzorce projektowe dr inż. Marcin Pietroo

Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs jednej z klas na interfejs drugiej klasy - innym zadaniem omawianego wzorca jest opakowanie istniejącego interfejsu w nowy

Adapter - przykład

Adapter Wykorzystywane mechanizmy do realizacji adaptera: - kompozycja (w zależności od sposobu realizacji wzorca) - refleksja (w zależności od sposobu implementacji) - bloki instrukcji warunkowych (w adapter i w klasie będącej głównym interfejsem)

Adapter Istnieją dwa warianty wzorca Adapter: klasowy (wykorzystywany jest mechanizm wielokrotnego dziedziczenia, adapter dziedziczy z interfejsu klienta i klasy adaptowanej) obiektowy (jak na przykładzie, jednokrotne dziedziczenie i kompozycja)

Adapter Adapter klasowy: brak możliwości adaptowania klasy wraz z jej podklasami, możliwośd przeładowania metod obiektu adaptowanego. Adapter obiektowy: możliwośd adaptacji klasy wraz z jej podklasami, możliwośd dodawania nowej funkcjonalności, brak możliwości przeładowania metod obiektu adaptowanego. Uwaga: spadek wydajności w zależności od skomplikowania procesu adaptacji

Decorator Wzorzec dekoratora polega na opakowaniu oryginalnej klasy w nową klasę "dekorującą". Zwykle przekazuje się oryginalny obiekt jako parametr konstruktora dekoratora, metody dekoratora wywołują metody oryginalnego obiektu i dodatkowo implementują nową funkcję. Dekoratory są alternatywą dla dziedziczenia. Dziedziczenie rozszerza zachowanie klasy w trakcie kompilacji, w przeciwieostwie do dekoratorów, które rozszerzają klasy w czasie działania programu.

Decorator

Decorator Zapewnia większą elastycznośd niż statyczne dziedziczenie. Pozwala uniknąd tworzenia przeładowanych funkcjami klas na wysokich poziomach hierarchii. Powstawanie wielu małych obiektów. Zastosowanie np. w pakiecie java.io

Bridge Strukturalny wzorzec projektowy, który pozwala oddzielid abstrakcję obiektu od jego implementacji. odseparowanie implementacji od interfejsu, poprawienie możliwości rozbudowy klas, zarówno implementacji, jak i interfejsu (m.in. przez dziedziczenie), ukrywanie implementacji od klienta, co umożliwia zmianę implementacji bez zmian interfejsu.

Bridge

Facade Służy do ujednolicenia dostępu do złożonego systemu poprzez wystawienie uproszczonego, uporządkowanego interfejsu programistycznego.

Facade

Facade Wzorzec wyróżnia następujące elementy: złożony system do systemu upraszczamy dostęp fasada klasa posiadająca referencje do elementów systemu z metodami do wykonywania najczęściej potrzebnych zadao klient dowolny kod zainteresowany wykorzystaniem złożonego systemu. Klient komunikuje się z systemem poprzez fasadę, która w jego imieniu wykonuje niezbędne operacje na złożonym systemie. To, czy klient posiada także bezpośredni dostęp do systemu, zależy od programisty implementującego wzorzec.

Facade zmniejszenie liczby zależności między klientem a złożonym systemem wprowadzenie podziału aplikacji na warstwy, który ułatwia niezależny rozwój klienta i złożonego systemu, możliwośd zablokowania klientowi dostępu od pewnych obszarów złożonego systemu, jeśli jest to konieczne, kod klienta wykorzystującego fasadę jest czytelniejszy i łatwiejszy w zrozumieniu

Proxy Istnieją cztery rodzaje tego wzorca, które jednocześnie definiują sytuacje, w których może zostad użyty: wirtualny przechowuje obiekty, których utworzenie jest kosztowne; tworzy je na żądanie ochraniający kontroluje dostęp do obiektu sprawdzając, czy obiekt wywołujący ma odpowiednie prawa do obiektu wywoływanego zdalny czasami nazywany ambasadorem; reprezentuje obiekty znajdujące się w innej przestrzeni adresowej sprytne odwołanie czasami nazywany sprytnym (inteligentnym) wskaźnikiem; pozwala na wykonanie dodatkowych akcji podczas dostępu do obiektu, takich jak: zliczanie referencji do obiektu czy ładowanie obiektu do pamięci

Proxy Strukturalny wzorzec projektowy, którego celem jest utworzenie obiektu zastępującego inny obiekt. Stosowany jest w celu kontrolowanego tworzenia na żądanie kosztownych obiektów oraz kontroli dostępu do nich (np. Hibernate, oprogramowanie operujące nad dużymi zbiorami danych, praca z obiektami z ochroną dostępu itd.).