Sobes.tech
Middle

Čo sú návrhové vzory?

sobes.tech AI

Odpoveď od AI

Vzorce (šablóny) návrhu sú štandardné, opakovane overené riešenia často sa vyskytujúcich problémov návrhu v rámci objektovo orientovaného programovania. Nie sú to hotové knižnice alebo rámce, ale koncepty alebo "recepty", ktoré je možné prispôsobiť konkrétnemu úlohe.

Vzorce sa zameriavajú na vzťahy medzi triedami a objektmi. Delia sa do troch hlavných kategórií:

  • Vytváracie (Creational): Šablóny na vytváranie objektov.
    • Factory Method (Funkčný spôsob)
    • Abstract Factory (Abstraktná továreň)
    • Singleton (Jedinečný)
    • Builder (Staviteľ)
    • Prototype (Prototyp)
  • Štrukturálne (Structural): Šablóny na organizáciu tried a objektov do väčších štruktúr.
    • Adapter (Adaptér)
    • Bridge (Most)
    • Composite (Kompozit)
    • Decorator (Dekorátor)
    • Facade (Fasáda)
    • Flyweight (Flyweight)
    • Proxy (Proxyna)
  • Správanie (Behavioral): Šablóny pre algoritmy a spôsoby interakcie medzi triedami a objektmi.
    • Chain of Responsibility (Reťazec zodpovednosti)
    • Command (Príkaz)
    • Iterator (Iterátor)
    • Mediator (Strelec)
    • Memento (Memento)
    • Observer (Pozorovateľ)
    • State (Stav)
    • Strategy (Stratégia)
    • Template Method (Šablónová metóda)
    • Visitor (Návštevník)

Použitie vzorov návrhu umožňuje vytvárať flexibilnejší, rozšíriteľnejší a udržiavateľnejší kód, zlepšovať jeho čitateľnosť a zjednodušovať spoluprácu na projekte.

Napríklad, vzor Singleton zaručuje, že trieda má iba jeden inštanciu, a poskytuje k nej globálny prístup.

// Príklad Singleton v Jave
class Singleton {
    private static Singleton instance; // Jediná inštancia

    private Singleton() {
        // Súkromný konštruktor na zabránenie vytvorenia nových inštancií
    }

    public static Singleton getInstance() {
        if (instance == null) { // Vytvorenie inštancie pri prvom volaní
            instance = new Singleton();
        }
        return instance; // Vrátenie jedinečnej inštancie
    }

    public void showMessage() {
        System.out.println("Ahoj od Singleton!");
    }
}