Čo je to návrhový vzor?
Návrhový vzor (design pattern) je vo všeobecnosti opakovateľným riešením bežne sa vyskytujúceho problému pri návrhu softvéru. Dizajnový vzor nie je hotový dizajn, ktorý je možné vziať a skopírovať ho do svojho do kódu. Vzor nie je konkrétny kus kódu, ale všeobecný koncept alebo šablóna na riešenie konkrétneho problému, ktorá sa dá použiť v mnohých rôznych situáciách. Dizajnové vzory môžu urýchliť proces vývoja aplikovaním testovaných a overených vývojových postupov.
Rozdelenie návrhových vzorov
Poznáme: vzory na vytváranie (Creational patterns), štrukturálne vzory (Structural patterns) a vzory správania (Behavioral patterns).
Vzory na vytváranie (Creational patterns)
Vzory z tejto kategórie sa zaoberajú vytváraním inštancií z tried.
- Singleton – zabezpečí, že trieda bude mať iba jednu inštanciu a tú poskytne ako prístupový bod.
- Builder – umožňuje rozloženie vytvárania komplexného objektu do série jednoduchých krokov.
- Prototype – vytvorí inštanciu nového objektu naklonovaním existujúcej inštancie.
- Factory – poskytuje rozhranie na vytváranie objektov odvodených tried.
- Abstract factory – poskytuje rozhranie pre vytváranie rodín súvisiacich objektov bez špecifikovania ich konkrétnych tried.
Štrukturálne vzory (Structural patterns)
Vzory z tejto kategórie sa zaoberajú štruktúrou triedy ako je dedičnosť a kompozícia.
- Adapter – umožňuje spoluprácu objektom s nekompatibilnými rozhraniami.
- Bridge – oddeľuje abstrakciu od implementácie, aby sa obe časti mohli nezávisle na sebe meniť.
- Composite – umožňuje zakomponovať objekty do stromových štruktúr a pracovať s nimi ako s individuálnymi objektami.
- Decorator – používa sa na dynamické pridávanie (a odstraňovanie) nových zodpovedností alebo funkcií existujúcim objektom bez ovplyvnenia správania iných objektov z rovnakej triedy.
- Facade – poskytuje zjednodušené rozhranie inak komplexnému systému.
- Flyweight – umožňuje zdieľať častí už existujúcich objektov za účelom zníženia počtu vytvorených objektov.
- Proxy – poskytuje možnosť nahradiť pôvodný objekt iným objektom, cez ktorý sa riadi prístup k pôvodnému objektu.
Vzory správania (Behavioral patterns)
Vzory z tejto kategórie sa zaoberajú komunikáciou medzi objektami.
- Chain of responsibility – ponúka spôsob odovzdávania požiadavky medzi reťazou objektov, kde aktuálne oslovený objekt ju má možnosť spracovať alebo poslať ďalšiemu v reťazi.
- Command – implementuje request–response model zabalením príkazu a jeho metadát do objektu.
- Iterator – umožňuje prechádzanie prvkami kolekcie bez odhalenia jej základného typu.
- Mediator – poskytuje centralizovanú komunikáciu medzi rôznymi objektami v systéme.
- Memento – umožňuje uložiť a následne obnoviť predchádzajúci stav objektu.
- Observer – ponúka mechanizmus notifikácií všetkých zainteresovaných objektov, ak nastane na pozorovanom objekte zmena.
- State – umožňuje objektu zmeniť svoje správanie, ak sa zmení jeho vnútorný stav.
- Strategy – poskytuje možnosť zadefinovania rodiny algoritmov, každý v samostatnej triede a zabezpečí ich zameniteľnosť.
O autorovi
Jozef Wagner
Java Developer Senior
Viac ako 10 rokov programujem v Jave, momentálne pracujem v msg life Slovakia ako Java programátor senior a pomáham zákazníkom implementovať ich požiadavky do poistného softvéru Life Factory. Vo voľnom čase si rád oddýchnem v lese, prípadne si zahrám nejakú dobrú počítačovú hru.