Demonstrace vzoru Abstract factory
Vzor Abstract factory

Abstract factory (Abstraktní továrna) je návrhový vzor, jehož jádrem je specifikace tovární třídy. Konkrétní implementace továrny je dosazena až za běhu programu, díky čemuž mohou být v programu vytvářeny výkonné objekty šité na míru dané situaci.

Obvyklou demonstrací tohoto vzoru je grafické uživatelské rozhraní. Grafické rozhraní má vypadat (a často i fungovat) na různých operačních systémech odlišně. Z tohoto důvodu je zapotřebí při startu aplikace zjistit, na jakém operačním systému se aplikace aktuálně nachází a inicializovat příslušnou továrnu, která bude aplikaci zásobovat implementacemi uživatelského rozhraní pro daný systém.


Příklad

Dalším častým užitím tohoto vzoru je přístup do databáze. Mějme aplikaci, která může přistupovat jak do relační, tak do XML databáze na základě uživatelské volby. Jádrem je již zmíněná specifikace továrny, ze které dědí konkrétní tovární třídy pro relační a XML persistenci. Při startu programu dojde k volbě jedné z těchto implementací a ta pak zásobuje aplikaci výkonnými DAO objekty (data access object). Pro úplnost ještě zmiňme, že v kódu je k výkonným objektům přistupováno pomocí společného interfacu (v jazycích, které neznají interface pomocí společného abstraktního předka definujícího příslušné metody).

Kód

01./**
02. * Operace, ktere musi splnovat vsechny tovarny
03. * @author Pavel Micka
04. */
05.interface DAOFactoryInterface{
06.    public DataAccessObjectInterface getDataAccessObject();
07.}
08./**
09. * Tovarna na XML data access objecty
10. * @author Pavel Micka
11. */
12.class XmlDAOFactory implements DAOFactoryInterface{
13.    public DataAccessObjectInterface getDataAccessObject() {
14.        return new XmlDataAccessObject();
15.    }
16.}
17./**
18. * Tovarna na relacni data access objecty
19. * @author Pavel Micka
20. */
21.class RelationalDAOFactory implements DAOFactoryInterface{
22.    public DataAccessObjectInterface getDataAccessObject() {
23.        return new RelationalDataAccessObject();
24.    }
25.}
26./**
27. * Operace, ktere musi splnovat vsechny DAO objekty
28. * @author Pavel Micka
29. */
30.interface DataAccessObjectInterface{
31.    public void getData();
32.}
33./**
34. * Provadi operace nad XML databazi
35. * @author Pavel Micka
36. */
37.class XmlDataAccessObject implements DataAccessObjectInterface{
38.    public void getData() {
39.        System.out.println("Delam operace v XML databazi");
40.    }
41.}
42./**
43. * Provadi operace nad relacni databazi
44. * @author Pavel Micka
45. */
46.class RelationalDataAccessObject implements DataAccessObjectInterface{
47.    public void getData() {
48.        System.out.println("Delam operace v relacni databazi");
49.    }
50.}

SEO od společnosti Digital Pylon


Online casino s algoritmem

České casino online online slot-vegas.cz

Hrajte nejlepší hry jako je GoodGame Empire.





Zajímavé články: Jak najít práci snů? Zvolte kariéru v IT!, Češi mají rádi hrací automaty online, Jak funguje algoritmické obchodování Casino, Online výuka Algoritmus a online marketing mají svá pravidla, Automaty, Matematický vliv, Ratings, Jak fungují algoritmy hazardních her online: více znalostí, více peněz, SYPWAI - nástroj pro vědecký vývoj, Vynikají na globálním trhu: Nejlepší vývojáři softwaru pro online výherní automaty, Jak si vybrat nejlepší české online casino, Proč byste měli hrát online casino VPN revoluce, Kde najdeme algoritmy v každodenním životě?, Čeká vás pracovní pohovor mimo město? Podívejte se, jak dokonale zvládnout včasný příchod, 5 úžasných technologií ze světa hazardních her, Mirror and access to Mostbet, Svou kancelář můžete mít stále po ruce, Jaké výhody má digitalizovaná firma oproti off-line konkurenci?, Jaký systém vybrat pro snadné řízení výroby?, Nahradí umělá inteligence ajťáky?, Důvody, proč používat SnapTik ke stahování videí TikTok, Dokonalý den na pláži: Co si vzít s sebou, aby byl výlet zábavný a bezpečný?, Jak přežít dlouhý let?, Go pay GoodGame Empire, Blockchain, Rozhovor, Umělá inteligence, Ochranná známka pre softvér: Prečo ju registrovať?, Role kryptografických algoritmů v zabezpečení online kasin, Jaké jsou náklady na nákup 3D tiskárny?, Jak algoritmy vylepšují online zážitky v roce 2025,