WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

Podobne dokumenty
WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

WYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod

WYKŁAD 9. Wzorce projektowe czynnociowe Observer Visitor

Programowanie Obiektowe

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

WYKŁAD 8. Wzorce projektowe strukturalne Facade Proxy Flyweight

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

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

Programowanie obiektowe

Wprowadzenie do programowania aplikacji mobilnych

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce projektowe kreacyjne

Testowanie oprogramowania Wzorce projektowe

Wzorce projektowe. dr inż. Marcin Pietroo

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

Wzorce projektowe. dr inż. Marcin Pietroo

Planowanie adresacji IP dla przedsibiorstwa.

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

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

Wypożyczalnia VIDEO. Technologie obiektowe

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

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

Zaawansowane programowanie obiektowe - wykład 5

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

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

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Ateus - Helios. System domofonowy

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Typy bazy danych Textract

stopie szaro ci piksela ( x, y)

Wzorce projektowe Michał Węgorek

WYKŁAD 13. Wzorce projektowe czynnociowe Chain of Responsibility Interpreter Memento

Klonowanie MAC adresu oraz TTL

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

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

Program Sprzeda wersja 2011 Korekty rabatowe

1) Wzorzec projektowy Adapter. Zastosowanie:

Wzorce projektowe. dr inż. Marcin Pietroo

FV Ando. Nie usuwasz danych Produkty, których ju nie sprzedajesz, nieaktywni kliencie oraz faktury mog by po prostu przeniesione do archiwum.

WYKŁAD 5. Wzorce projektowe kreacyjne Builder Prototype

Diagramy klas. dr Jarosław Skaruz

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

WZORCE PROJEKTOWE STRUKTURALNE. Omówimy (W6-W8): Decorator Composite Adapter Bridge Facade Proxy

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

Instrukcja obsługi programu MechKonstruktor

Wprowadzenie do kompilatorów

Projektowanie logiki aplikacji

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

Programowanie obiektowe

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Wojciech Drzewiecki SYSTEMY INFORMACJI GEOGRAFICZNEJ

Wzorce projektowe i refaktoryzacja

UML w Visual Studio. Michał Ciećwierz

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

Programowanie obiektowe - 1.

Wzorce projektowe strukturalne cz. 1

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Bazy danych Podstawy teoretyczne

Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018

Listy i operacje pytania

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Programowanie w języku Java WYKŁAD

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

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

Studium przypadku Case Study CCNA2-ROUTING

Programowanie obiektowe

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym

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

Programowanie obiektowe

Programowanie obiektowe

Zaawansowane programowanie w C++ (PCP)

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

Design Pattern Density Defined

Projektowanie obiektowe Wzorce projektowe

Wykład 1 Inżynieria Oprogramowania

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Podstawy modelowania w j zyku UML

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Technologia Programowania 2016/2017 Wykład 5

Modelowanie i Programowanie Obiektowe

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:


Paweł Kurzawa, Delfina Kongo

Programowanie obiektowe

Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

rodowisko programistyczne TESTPOINT

Programowanie i projektowanie obiektowe

Zadania do wykonaj przed przyst!pieniem do pracy:

MVVM Light Toolkit. Julita Borkowska

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

UML cz. II. UML cz. II 1/38

Transkrypt:

WYKŁAD 12 Wzorce projektowe czynnociowe State Mediator

Behavioral Design Pattern: State [obj] Umoliwia obiektowi zmian zachowania gdy zmienia si jego stan wewntrzny. Dzieki temu obiekt zdaje si zmienia swoja klas.

Uzasadnienie: Klasa PołczenieTCP reprezentuje połczenie sieciowe. Takie połczenie mo eby w jednym ze stanów: Nawizane, Nasłuchiwane, Zamknite. Gdy otrzymuje dania od klientów powinna zachowywa si w sposób zaleny od aktualnego stanu. Wzorzec State opisuje jak powinna si zachowywa klasa w kadym ze stanów.

Najwaniejsze jest wprowadzenie klasy abstrakcyjnej StanTCP reprezentujcej stany połczenia sieciowego. Definiuje ona wspólny interfejs dla swoich podklas, które implementuj zachowanie specyficzne dla stanu.

Klasa PołczenieTCP zawiera w sobie obiekt StanTCP reprezentujcy biecy stan połczenia. Przekazuje ona wszystkie dania zalene od stanu do tego obiektu (do obiektu podklasy). Przy zmianie stanu obiekt PołczenieTCP zmienia uywany przez siebie obiekt reprezentujcy stan.

Stosowalno: zachowanie obiektu zaley od jego stanu, a obiekt musi zmienia swoje zachowanie w czasie wykonywania programu w zalenoci od stanu operacje zawieraj due wieloczciowe instrukcje warunkowe, które zale od stanu obiektu

Struktura:

Uczestnicy: Kontekst (PołczenieTCP) definiuje interfejs dla klientów utrzymuje egzemplarz podklasy StanuKonkretnego, definiujcy biecy stan Stan (StanTCP) definiuje interfejs do kapsułkowania zachowania zwizanego z okrelonym stanem Kontekstu

StanKonkretny (TCPNawizane, TCPNasłuchiwanie, TCPZamkniete) kada podklasa implementuje zachowanie zwizane ze stanem Kontekstu

Współpraca: Kontekst deleguje dania specyficzne dla stanu do biecego obiektu StanKonkretny Kontekst moe przekazywa siebie samego jako argument do obiektu Stan obsługujcego danie stan ma dostp do Kontekstu Kontekst jest podstawowym interfejsem dla klientów; Klienci mog konfigurowa Kontekst za pomoc obiektów Stan; pos konfigurowaniu ju si nie zajmuj stanem o tym który stan nastpuje po którym i kiedy moe decydowa Kontekst albo podklasy KonkretnegoStanu [maszyna stanów w UML]

Konsekwencje: umiejscowienie zachowania specyficznego dla stanu i rozdzielenie zachowania w wypadku rónych stanów jawno przej midzy stanami moliwo współdzielenia obiektów Stan

Implementacja: który z uczestników definiuje przejcia miedzy stanami? alternatywne rozwizanie polegajce na wykorzystaniu tablic tworzenie i niszczenie obiektów Stan wykorzystywanie dynamicznego dziedziczenia

Przykłady Znane zastosowania Pokrewne wzorce: Flyweight wyjania jak mona współdzieli obiekty Stan Singleton obiekty Stan czsto s Singletonami

Behavioral Design Pattern: Mediator [obj]

Przeznaczenie: Wzorzec ten definiuje obiekt kapsułkujcy informacje o tym jak obiekty współdziałaj. W ten sposób przyczynia si on do rozlunienia powiza midzy obiektami (weak-coupling), gdy sprawia, e nie odwołuj si one do siebie bezporednio. Umoliwia te oddzielne zmienianie ich sposobu komunikacji.

Uzasadnienie: W projektowaniu obiektowym powstaje zwykle wiele niewielkich klas, których obiekty musz si komunikowa ze sob nawzajem. Prowadzi to do wzrostu złoonoci komunikacji pomidzy nimi, a co za tym idzie do komplikacji wzajemnych powiza. Moe si nawet okaza, e kady obiekt musi wiedzie o wszystkich pozostałych. Denie do ponownego uycia przyczynia si do zwikszenia złoonoci, a złoono komunikacji ogranicza moliwoci ponownego uycia.

Przykładem moe by implementacja okienka dialogowego z GUI zawierajcego kontrolki. Kontrolki te s zalene od siebie nawzajem. Np. wybranie czego na licie moe spowodowa zmian tekstu w polu edycyjnym oraz wygaszenie jakich kontrolek. Aby kadorazowo przy implementowaniu kolejnych okienek nie zmienia nieustannie klas reprezentujcych kontrolki w zalenoci od tego jak si one komunikuj z innymi mona zbiorcze zachowanie umieci w osobnym obiekcie mediatorze. Mediator jest odpowiedzialny włanie za sterowanie i koordynowanie interakcji obiektów. Wszystkie obiekty znaj mediatora ale nie znaj siebie nawzajem. [zamiana trójkta w gwiazd]

Moemy sobie wyobrazi okienko dialogowe zajmujce si wyborem czcionki. Rol mediatora moe wtedy pełni klasa KierownikDialoguWybórCzcionki. Zna on kontrolki i koordynuje ich współprac. Jedoczenie kontrolki wiedz o nim. Dziki temu całe zachowanie okienka dialogowego mona zmieni przez wymian jednej klasy.

Stosowalno. zbiór obiektów komunikuje si w dobrze zdefiniowany ale skomplikowany sposób nieuporzdkowane i trudne do zrozumienia współzalenoci utrudnione ponowne uycie obiektu, gdy komunikuje si z wieloma innymi zachowanie rozproszone wród wielu klas powinno by modyfikowane bez definowania ich podklas

Struktura:

Uczestnicy: Mediator (KierownikDialogu) definiuje interfejs porozumiewania si z obiektami Współpracownik MediatorKonkretny (KierownikDialoguWybórCzcionki) implementuje wspólne zachowanie przez koordynowanie współpracy obiektów Współpracownik zna i koordynuje swoich współpracowników

Klasy Współpracowników (ListaRozwijana, PoleEdycyjne) kada klasa Współpracownik zna swój obiekt Mediator kady współpracownik porozumiewa si ze swoim mediatoremzawsze wtedy gdy zwykle porozumiewałby si z innym współpracownikiem

Współpraca: Współpracownicy wysyłaj komunikaty do obiektu Mediator i otrzymuj je od niego. Mediator implementuje wspólne zachowanie przesyłjc dania midzy współpracownikami

Konsekwencje: ograniczenie tworzenia podklas zamiast podklas współpracowników tylko podklasa Mediatora, zatem klasy Współpracowników mona ponownie wykorzystywa rozdzielenie współpracowników rozlunienie powiza pomidzy nimi, mona niezalenie zmienia i ponownie wykorzystywa klasy Współpracownik i Mediator

uproszczenie protokołów obiektów zamiast wiele-do-wiele mamy jeden-do-wiele, które s łatwiejsze do maintenance u uabstrakcyjnienie współpracy mona oddzieli to jak zachowuj si indywidualnie obiekty od tego jak wyglda komunikacja centralizacja sterowania mediator zamienia złoono współdziałania na złoono mediatora, co moe powodowa trudno w jego utrzymaniu

Implementacja: pomijanie klasy abstrakcyjnej Mediator jeli tylko jeden mediator konkretny komunikacja współpracownik-mediator moe by zaimplementowana z uyciem wzorca Observer (jest nim wtedy Mediator) albo współpracownik moe przesyła w komunikacie samego siebie

Przykłady Zastosowania Pokrewne wzorce: Facade tym si róni od Mediatora, e wyodrbnia podsystem obiektów i zapenia do niego wygodny interfejs, co oznacza, e tylko on wysyła dania do podsystemu, ale nie na odwrót. W Mediatorze komunikacja jest dwukierunkowa Observer współpracownicy mog si komunikowa z Mediatorem w sposób zapewniany przez Observer