Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava

Slides:



Advertisements
Podobné prezentace
Stručný úvod do UML.
Advertisements

Úvod do databázových systémů
Vývoj aplikací s využitím JavaFX
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Softwarový systém DYNAST
Název školy: Základní škola a Mateřská škola Kladno, Vodárenská 2115 Autor: Mgr. Ilona Sadílková Materiál: VY_32_INOVACE_ICT34.11 Téma: Windows Číslo projektu:
Vektorový animátor Diplomová práce
Čtvrté cvičení Objektové programování Objektový model v Javě
Desáté cvičení Java Core API Java Collection Framework JavaDoc.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Podpora výuky a tvorby ER diagramu ve výukovém systému Barborka Petr Kopka VŠB – TU Ostrava, 2005.
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í.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
KONCEPTUÁLNÍ MODELOVÁNÍ
Štěpán Lískovec, 4.A.  =základní programové vybavení počítače (tj.software)  hlavní úkol:  A, zajistit uživateli možnost ovládat PC  B, vytvořit pro.
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.
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Strategy. Strategy – „All-in-1“ na začátek class AStrategy { public: virtual void Algorithm()=0; protected: AStrategy(); }; class SpecificStrategy: public.
Informatika pro ekonomy II přednáška 10
Modelování a simulace MAS_02
Operační systém (OS) ICT Informační a komunikační technologie.
B. Miniberger, BIVŠ Praha 2009
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í.
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
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.
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
Web 2.0, folksonomie a uživatelská rozhraní Lenka Němečková Eliška Pavlásková Založeno mimo jiné na prezentacích prof. B. Whitea „The Promise of Rich User.
Databázové modelování
Active Directory Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
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.
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
© BBMP: BAM015, BAR487, MAL305, POH015 1 Prezentace projektu Adresář kontaktů Autoři: Kateřina Bambušková, BAM015 Martina Bartošíková, BAR487 Alena Malovaná,
SOFTware Adresář, soubor, OS Informatika – 6. třída Bc. Josef Štainer
Vzor na všechno. Vzor – úvod Problém .. Příklad: widgety .. Jak na to? .. Známý také jako...
Přístup do IS z mobilních zařízení Tomáš Tureček Katedra Informatiky FEI VŠB-TU Ostrava.
Abstract Factory. Abstract Factory – úvod Situace  potřebujeme vytvářet objekty ze skupiny souvisejících nebo na sobě závislých tříd  2 „druhy“ GUI.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Tomáš Skopal GIS řízený toky dat Tomáš Skopal
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í.
David Osička OSI011 UML – přehled, notace VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a Informatiky Katedra Informatiky.
Prezentace diplomové práce
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í.
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Pro 2. a 4.ročník ZŠ, vytvořeno : duben 2012 Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_07_.
Publikujeme s Autodesk MapGuide v.5.0 Ing. Jan Růžička, Dr. Ing. Jiří Horák VŠB-Technická univerzita Ostrava
Anotace: Kancelářský balík od firmy Microsoft je nejčastěji používané řešení ve firmách i domácnostech. Žáci získají přehled o tomto produktu, získají.
 MS-DOS (Microsoft Disk Operating System) je operační systém firmy Microsoft, který patří do rodiny mnoha podobných a kompatibilních DOS systémů pro.
ÚVOD DO PŘEDMĚTU INFORMAČNÍ TECHNOLOGIE. OPERAČNÍ SYSTÉM Je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
NetBeans Plugin.  Echo2 web framework (Ajax, Java)  NetBeans IDE (modularita, Swing designer)  Vizuální design uživatelského rozhraní (WYSIWYG)  Drag.
Druhy aplikačních programů – rozdělení podle účelu 1
Software Počítače - rozdělení podle účelu
Financováno z ESF a státního rozpočtu ČR.
C# WPF.
Operační systémy - úvod
Návrhový vzor Flyweight
SOFTWARE II Aplikační software.
Abstract Factory.
Informatika pro ekonomy přednáška 8
Bridge.
Transkript prezentace:

Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava

Obsah Úvod Abstract Factory  Toolkit  EditorKit Factory Method  PopupFactory  KeyFactory  SocketImplFactory  DocumentBuilderFactory

Návrhové vzory Obecné řešení často se objevujících problémů Množina objektů a tříd, které jsou propojeny vazbami Dělí se podle funkce na:  Tvořící vzory  Strukturální vzory  Vzory chování

API jazyka JAVA Aplikační programátorské rozhraní (Application Program Interface) Soubor tříd, které jsou k dispozici programátorům Obsahuje implementace různých návrhových vzorů

Abstract Factory Patří mezi tvořící návrhové vzory Další názvy: Factory, Toolkit, Kit Poskytuje rozhraní pro tvoření rodin příbuzných objektů bez specifikace konkrétních tříd Nahrazuje přímé volání konstruktoru voláním tvořící metody továrního objektu

Diagram tříd – abstrakce vzoru Factory

Toolkit java.awt.Toolkit Nejdůležitější užití Factory v JAVA API Umožňuje platformově nezávislé aplikace s grafickým uživatelským rozhraním (GUI) Objekty GUI z balíku java.awt (ve vzoru Factory klienti) si tvoří automaticky „peer“ objekty (ve Factory produkty) s využitím továrny Toolkit Rozhraní pro „peer“ objekty jsou v balíku java.awt.peer Implementace „peer“ objektů jsou např. v balících sun.awt.windows a sun.awt.motif

Diagram tříd – propojení Toolkit se dvěma produkty

Příklady tvořících metod třídy Toolkit MetodaKlient createButton():ButtonPeerButton createCanvas():CanvasPeerCanvas createCheckbox():CheckboxPeerCheckbox createChoice():ChoicePeerChoice createComponent():LightweightPeerComponent createDialog():DialogPeerDialog createFileDialog():FileDialogPeerFileDialog createFrame():FramePeerFrame createLabel():LabelPeerLabel createList():ListPeerList

Diagram tříd – část hierarchie produktů

Jak to funguje? Systémově nezávislé objekty GUI přenechávají systémově závislé akce svým „peer“ objektům „Peer“ objekt je prostřednictvím továrny vytvořen, když je zavolána na objekt GUI první systémová akce a existuje po celou dobu existence objektu GUI Konkrétní podtřídu třídy Toolkit získá objekt GUI voláním statické metody getProperty() třídy System K vytvoření instance továrního objektu se využije třída Class

EditorKit javax.swing.text.EditorKit Klientem je JEditorPane Produkty jsou Document a ViewFactory ViewFactory je továrna pro tvoření objektů View odpovědných za zobrazení dokumentů Document slouží jako kontejnér na text pro textové prvky rozhraní SWING Konkrétní produktová třída HTMLFactory je vnitřní třídou HTMLEditorKit, StyledViewFactory je vnitřní StyledEditorKit a PlainEditorKit je v JEditorPane

Diagram tříd – EditorKit

Factory Method Patří mezi tvořící návrhové vzory Slouží k vytvoření jedné z několika možných tříd Třídy, které vrací, mívají stejné rozhraní a nadtřídu, ale každá úkoly provádí jiným způsobem Rozhodnutí o tom, kterou třídu vrátit, nechává tvořící třída na podtřídě, nebo o konkrétním produktu rozhoduje tvořící metoda na základě poskytnutých dat

Diagram tříd – abstrakce vzoru Factory Method

PopupFactory javax.swing.PopupFactory Slouží k získání instancí třídy Popup Objekty Popup slouží k zobrazení prvku GUI (instance Component ) nad všemi ostatními prvky Metoda getPopup() rozhoduje o konkrétní podtřídě třídy Popup na základě svých parametrů Všechny podtřídy Popup jsou vnitřními třídami Popup

Diagram tříd – PopupFactory

KeyFactory java.security.KeyFactory Slouží k převodu specifikací kryptografických klíčů (instance KeySpec) na objekty reprezentující klíče samotné (instance Key) a opačně Tvořící metody rozhodují o konkrétní třídě vraceného objektu na základě parametrů V distribuci JDK jsou jen implementace DSAPrivateKey a DSAPublicKey v balíku sun.security.provider

Diagram tříd – KeyFactory 1.část

Diagram tříd – KeyFactory 2.část

SocketImplFactory java.net.SocketImplFactory Třída Socket reprezentuje klientský konec síťového spojení. Skutečnou práci provádějí objekty tříd implementujících SocketImpl Socket si vytvoří svůj konkrétní SocketImpl pomocí továrny SocketImplFactory

Diagram tříd – SocketImplFactory

DocumentBuilderFactory Nachází se v balíku javax.xml.parsers Aplikace jejím prostřednictvím získávají parser, který vytváří stromy DOM objektů z XML dokumentů V distribuci JDK je jen jedna neabstraktní implementace od firmy Apache v balíku org.apache.crimson.jaxp

Diagram tříd – DocumentBuilderFactory