Mediator Několik slov o překladu slova do češtiny (prostředník, zprostředkovatel), vyzdvihnutí počeštěného slova mediátor. 1 1.

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

Průvodce aplikací GSMlink aneb Jak je jednoduché komunikovat s Athosem
Stručný úvod do UML.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Mediator. Mediator - motivace  FontDialog  závislosti mezi jednotlivými ovládacími prvky jsou netriviální.
Programovací jazyk C++
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Proxy. Definice  zástupce nebo náhradník za dotyčný objekt  proxy i zastoupený objekt dědí od stejného interfacu  proxy kontroluje přístup k objektu.
1 Small Business Windows XP Professional Platforma pro zpracování zpráv (Messaging Platform) 6 září, 2001.
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
Čtvrté cvičení Objektové programování Objektový model v Javě
Z ČEHO SE POČÍTAČ SKLÁDÁ
Chain of responsibility Martin Malý prezentace na předmět Návrhové vzory (PRG024) na MFF UK
Definování prostředí pro provozování aplikace dosud jsme řešili projekt v obecné rovině aplikace bude ovšem provozována v konkrétním technickém a programovém.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Informační systém základních registrů. Obsah Úvod Komunikace se základními registry Autentizace a autorizace Práce s údaji Funkcionalita v rámci Portálu.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Proč programovat v LS objektově Jiří Krákora, Alliance Healthcare.
Adapter. Adapter – pojem Součástka navržená k propojení dvou „nekompatibilních“ zařízení Definice slova podle Cambridge Advanced Learner's Dictionary:
Objektové programování
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Operační systémy.
Strategy. Strategy – „All-in-1“ na začátek class AStrategy { public: virtual void Algorithm()=0; protected: AStrategy(); }; class SpecificStrategy: public.
Facade [f ə ˈ s ɑː d]f ə ˈ s ɑː d. Facade Před: Po:
Informatika pro ekonomy II přednáška 10
Composite [kompozit, ne kompozajt]. Composite Výslovnost  kompozit, ne kompozajt Účel  Popisuje, jak postavit hierarchii tříd složenou ze dvou druhů.
6. cvičení Polymorfismus
Memento. Obnovení operačního systému ( Windows | Linux...) Všichni víme, co jsou transekce v databázi Memento – zálohování databáze.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
Systémové pojetí hospodářské organizace 1 ECM – Řízení podnikového obsahu (Zdroj: Gála, Pour, Toman: Podniková informatika. Praha: Grada 2006) řízení podnikového.
PB161 Principy OOP - rozhraní, dědičnost PB161 | Principy OOP - Dědičnost, rozhraní
IB111 Programování a algoritmizace
Virtual Reality Toolbox 2.0
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
Richard Lipka Department of Computer Science and Engineering Faculty of Applied Sciences University of West Bohemia, Pilsen, Czech Republic 1.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Šesté cvičení Výjimky Balíky.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
Databázové systémy Informatika pro ekonomy, př. 18.
Decorator. Rozšiřuje objekty o dodatečné chování  rozšiřuje konkrétní objekty, ne třídy  rozšiřuje objekt dynamicky, tj. za běhu Upřednostňuje kompozici.
OPERAČNÍ SYSTÉMY.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Kreslítko Petr Diviš Zdeněk Papež. Úvod - připomenutí Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických.
Observer Martin Dráb Návrhové vzory, Co to je?  Definuje závislost 1:N mezi objekty  Závislé objekty jsou informovány o změně stavu  Konzistentní.
Chain of Responsibility. Chain of responsibility - účel Účel  Umožňuje zrušení vazby mezi odesílatelem a příjemcem požadavku  Umožňuje zaslání požadavku.
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
Iterator Iterator – Problém struct Item { int _value; Item * _next; Item( int value, Item * next ) : _value( value ), _next( next ) { } }; void Print(
Template Method. Motivační příklad – reálný svět Čaj 1) Uvař vodu 2) Dej do hrnku sáček čaje 3) Zalij hrnek 4) Přisyp cukr a vymačkej citrón Káva 1) Uvař.
Composite “ Spojuj a panuj ”. Zakladní vlastnosti Výslovnost  kompozit, ne kompozajt Účel  Popisuje, jak postavit strukturované hierarchie tříd, v níž.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY MVC vs MVP.
Průvodce aplikací GSMlink aneb Jak je jednoduché komunikovat s Athosem
SOLID principy v OOP návrhu
Návrhový vzor Flyweight
Lazy load Použity informace z knihy Patterns of Enterprise Application Architecture od M. Fowlera Jan Sládek.
Informatika pro ekonomy přednáška 8
Strategy „Definujte rodinu algoritmů, zapouzdřuje je aby byly vzájemně zaměnitelné. Strategie umožňuje, aby se algoritmus nebyl závislý na klientech, kteří.
Bridge.
C# přehled vlastností.
Mikroservisy Petr Paloch.
Přednášky z Distribuovaných systémů
Decorator.
Monitor Object 1.
Mediator Několik slov o překladu slova do češtiny (prostředník, zprostředkovatel), vyzdvihnutí počeštěného slova mediátor. 1 1.
Proxy 1.
Composite “Spojuj a panuj”.
Transkript prezentace:

Mediator Několik slov o překladu slova do češtiny (prostředník, zprostředkovatel), vyzdvihnutí počeštěného slova mediátor. 1 1

Mediator - motivace Řízení letového provozu Formulář, který všichni známe. Stručné připomenutí toho, jak se prvky vzájemně ovlivňují. 2 2

Mediator - motivace FontDialog závislosti mezi jednotlivými ovládacími prvky jsou netriviální Formulář, který všichni známe. Stručné připomenutí toho, jak se prvky vzájemně ovlivňují. 3 3

Mediator - motivace „Naivní“ přístup každá komponenta obdrží ukazatele na „kolegy“, se kterými komunikuje chování je rozprostřeno mezi jednotlivými komponentami fontEntryField fontListBox styleEntryField styleListbox fontListBox fontEntryField styleEntryField preview Popsat zřejmé nevýhody tohoto řešení – náročná správa, špatná rozšiřitelnost,… styleListBox entryField preview preview 4 4

Mediator - motivace Řešení pomocí Mediatoru každá komponenta obsahuje pouze ukazatel na jeden objekt - mediátor v něm je soustředěno chování celého dialogového okna styleEntryField mediator má přehled o jednotlivých widgetech, koordinuje interakce fontEntryField mediator fontListBox mediator aFontDialogDirector Popsat interakci a výhody tohoto řešení. styleListBox mediator preview 5 5

Mediator - chování Listbox a entry field o sobě vůbec neví čas uživatel změní výběr v listboxu, ten ohlásí změnu mediátorovi, který předá aktuální položku do vstupního políčka Listbox a entry field o sobě vůbec neví o tom, že se má po změně někam něco vyplnit, se rozhoduje v mediátoru Interakce zprostředkovaně přes jeden objekt 6 6

Mediator - struktura rozhraní pro komunikaci kolegů znají pouze svého mediátora veškerou komunikaci směřují na něj implementuje společné chování, zná a koordinuje kolegy 7 7

Mediator - účel Účel Není to proti principům OOP? zapouzdření chování systému objektů Loose coupling umožňuje měnit interakci objektů nezávisle na jejich vnitřní implementaci zjednodušuje program Není to proti principům OOP? distribuce chování mezi jednotlivými objekty je přece většinou vítaná ale jen do té doby, dokud nejde proti znovupoužitelnosti slévání do monolitu Pár slov o spojení „Loose coupling“. Poznámky související se sléváním do monolitu: distribuce chování → velká propojenost jednotlivých objektů propojenost → objekt většinou nemůže pracovat bez ostatních i systém rozdělený na mnoho částí se chová jako monolit změnit chování distribuované do mnoha (stovek) objektů může být obtížné – dědičnost nám moc nepomůže 8 8

Mediator - použití Kdy sáhnout po mediátoru? skupina objektů má komunikovat definovaným, ale složitým způsobem složité závislosti mezi objekty znovupoužití objektu je obtížné spolupracuje s mnoha jinými objekty chování distribuované mezi mnoho objektů bylo mělo být upravitelné bez nutnosti vytváření mnoha podtříd 9 9

Mediator - důsledky Výhody a omezení omezuje odvozování mnoha podtříd původně distribuované chování soustřeďuje na jedno místo ostatní objekty je možné znovu použít odstraňuje nutnost referencí na všechny spolupracující objekty kolegové o sobě navzájem nevědí zabstraktňuje způsob spolupráce objektů odděluje kooperaci mezi objekty od jejich samostatného chování kooperace lze řešit na jednom místě n:m interakce nahrazuje 1:m, které jsou jednodušší k pochopení i rozšiřování centralizuje řízení samotný mediátor bude většinou složitý 10 10

Mediator - implementace varianty - abstraktní x konkrétní komunikace kolega-mediátor při „zajímavé“ události aktivně, když kolega něco potřebuje mediátor propaguje událost k dalším kolegům (x Chain of Responsibility) implementace komunikace speciální notifikační interface mediátora Observer kolegové vystupují jako subjekty při změně stavu upozorní observera-mediátora rozumná extrakce funkcionality – ne „god“ objekt mediátor neřídí celou funkcionalitu spolupracujících objektů jen zabezpečuje komunikaci mezi nimi Případ notifikačního interface je předávání ukazatele na sebe sama. 11 11

Mediator - implementace Rozhraní/abstraktní třídy public interface IAirTrafficControl { void ReceiveAircraftLocation(Aircraft location); void RegisterAircraftUnderGuidance(Aircraft aircraft); } Rozhraní kolega → mediátor public abstract class Aircraft { private readonly IAirTrafficControl _atc; //z konstruktoru public int Altitude get { return _currentAltitude; } set _currentAltitude = value; _atc.ReceiveAircraftLocation(this); } public void Climb(int heightToClimb) Altitude += heightToClimb; Rozhraní mediátor → kolega 12 12

Mediator - implementace Konkrétní chování v potomcích public class ATCenter : IAirTrafficControl { public void ReceiveAircraftLocation(Aircraft reportingAircraft) { foreach (var currentAircraft in _aircraftsUnderGuidance) { if (//moc blizko) //rozhodnout, ktere letadlo zmeni polohu a o kolik aircraft.Climb(1000); } public void RegisterAircraftUnderGuidance(Aircraft aircraft) { //pridat do kolekce _aircraftUnderGuidance } } public class Airbus321 : Aircraft public class Boeing737200 : Aircraft public class Embraer190 : Aircraft Podle typu letadla různá bezpečná vzdálenost, různá priorita 13 13

Mediator – použití Možná použití – počítačový svět GUI Instant messaging, sms zprávy mediátor – chatovací room, operátor kolegové – jednotliví klienti dům budoucnosti – „smart home“ mnoho různorodých zařízení lednice, klimatizace, topení, různá teplotní či vlhkostní čidla alarm, zamykání dveří, ... potřeba koordinace (ne přímo řízení) alarm -> policie, sms majiteli dojde mléko -> objednat paralelní a distribuované výpočty synchronizace, mezivýsledky obchodování na burze řízení letového provozu Trochu rozvést GUI. 14 14

Mediator – související NV Facade fasáda jen abstrahuje skupinu objektů do jednoho rozhraní vnitřní objekty o ní neví jednoduchá jednosměrná komunikace nepřidává funkcionalitu Observer soupeř - možná alternativa v případě jednodušší komunikace doplněk - kolegové mohou komunikovat s mediátorem pomocí Observera Chain of Responsibility zasílání zpráv neznámým objektům přes zřetězené objekty 15 15

Otázky? Několik slov o překladu slova do češtiny (prostředník, zprostředkovatel), vyzdvihnutí počeštěného slova mediátor. 16 16