Middle
Aké vzory návrhu poznáte?
sobes.tech AI
Odpoveď od AI
Tvorcovia:
- Funkcia továreň (Factory Method): Definuje rozhranie na vytvorenie objektu, ale umožňuje podtriedam rozhodnúť, akú triedu inštancovať.
- Abstraktná továreň (Abstract Factory): Poskytuje rozhranie na vytvorenie rodín vzájomne súvisiacich alebo závislých objektov bez špecifikácie ich konkrétnych tried.
- Staviteľ (Builder): Oddelí konštrukciu zloženého objektu od jeho prezentácie, takže rovnaký proces konštrukcie môže vytvárať rôzne prezentácie.
- Prototyp (Prototype): Vytvára nové objekty kopírovaním existujúceho vzoru.
- Singleton (Singleton): Zabezpečuje, že trieda má iba jeden príklad a poskytuje globálny prístup k nemu.
Štrukturálne:
- Adaptér (Adapter): Premení rozhranie jednej triedy na iné, ktoré očakávajú klienti.
- Most (Bridge): Oddelí abstrakciu od jej implementácie, aby mohli byť nezávisle meniace sa.
- Kompozit (Composite): Kombinuje objekty do stromových štruktúr na reprezentáciu hierarchií časť-ceľok. Umožňuje klientom pracovať s jednotlivými objektmi a ich kompozíciami jednotne.
- Dekorátor (Decorator): Dynamicky pridáva nové zodpovednosti k objektu. Je flexibilnou alternatívou k podtriedeniu na rozšírenie funkčnosti.
- Fasáda (Facade): Poskytuje zjednotené rozhranie pre sadu rozhraní podsystému. Uľahčuje používanie podsystému.
- Flyweight (Flyweight): Efektívne zdieľa veľké množstvo podobných objektov.
- Proxy (Proxy): Poskytuje náhradný objekt, ktorý riadi prístup k inému objektu.
Správanie:
- Reťazec zodpovedností (Chain of Responsibility): Umožňuje odovzdávať požiadavky postupne reťazcom spracovateľov. Každý spracovateľ rozhodne, či požiadavku spracuje alebo ju odovzdá ďalej.
- Príkaz (Command): Zapuzďuje požiadavku ako objekt, čo umožňuje klientom parameterizovať rôzne požiadavky, zaradiť ich do radu alebo ich zaznamenať, ako aj podporovať operácie vrátenia.
- Iterátor (Iterator): Poskytuje spôsob sekvenčného prístupu k prvkom zloženého objektu bez odhalenia jeho vnútornej štruktúry.
- Mediator (Mediator): Definuje objekt, ktorý zapuzďuje, ako objekty medzi sebou komunikujú. Podporuje slabé prepojenie, zabraňuje explicitným odkazom medzi objektmi.
- Memento (Memento): Zaznamenáva a externé uchováva vnútorný stav objektu bez narušenia inkapsulácie, aby ho bolo možné neskôr obnoviť.
- Pozorovateľ (Observer): Definuje závislosť "jeden ku mnohým" medzi objektmi tak, že pri zmene stavu jedného sú všetky závislé od neho automaticky upozornené a aktualizované.
- Stav (State): Umožňuje objektu meniť svoje správanie pri zmene jeho vnútorného stavu. Zdá sa, že mení svoju triedu.
- Stratégia (Strategy): Definuje rodinu algoritmov, kapsuluje každý a robí ich zameniteľnými. Umožňuje algoritmu meniť sa nezávisle od klientov, ktorí ho používajú.
- Šablónová metóda (Template Method): Definuje kostru algoritmu v operácii, odkladá niektoré kroky na podtriedy. Umožňuje podtriedam redefinovať niektoré kroky algoritmu bez zmeny jeho štruktúry.
- Návštevník (Visitor): Predstavuje operáciu, ktorú je potrebné vykonať nad prvkami štruktúry objektov. Umožňuje definovať novú operáciu bez zmeny tried prvkov, na ktorých operuje.