Middle
Jaké vzory návrhu znáte?
sobes.tech AI
Odpověď od AI
Tvoří:
- Faktoriální metoda (Factory Method): Definuje rozhraní pro vytváření objektu, ale umožňuje podtřídám rozhodnout, jakou třídu instancovat.
- Abstraktní továrna (Abstract Factory): Poskytuje rozhraní pro tvorbu rodin vzájemně souvisejících nebo závislých objektů bez specifikace jejich konkrétních tříd.
- Stavitel (Builder): Odděluje konstrukci složitého objektu od jeho reprezentace, takže stejný proces konstrukce může vytvářet různé reprezentace.
- Prototyp (Prototype): Vytváří nové objekty kopírováním existujícího vzoru.
- Singleton (Singleton): Zajišťuje, že třída má pouze jednu instanci a poskytuje globální přístup k ní.
Strukturální:
- Adaptér (Adapter): Převádí rozhraní jedné třídy na jiné, které očekávají klienti.
- Most (Bridge): Odděluje abstrakci od její implementace, aby mohly být měněny nezávisle.
- Seskupovač (Composite): Skládá objekty do stromových struktur pro reprezentaci hierarchií část- celý. Umožňuje klientům pracovat s jednotlivými objekty i jejich složenými strukturami jednotně.
- Dekorátor (Decorator): Dynamicky přidává objektu nové odpovědnosti. Je flexibilní alternativou k podtřídění pro rozšíření funkčnosti.
- Fasáda (Facade): Poskytuje sjednocené rozhraní k sadě rozhraní podsystému. Usnadňuje používání podsystému.
- Flyweight (Flyweight): Efektivně sdílí velké množství podobných objektů.
- Proxy (Proxy): Poskytuje náhradní objekt, který řídí přístup k jinému objektu.
Chování:
- Řetězec odpovědnosti (Chain of Responsibility): Umožňuje předávat požadavky postupně řetězcem zpracovatelů. Každý zpracovatel rozhodne, zda požadavek zpracuje nebo předá dál.
- Příkaz (Command): Zapouzdřuje požadavek jako objekt, což umožňuje klientům parametrizovat různé požadavky, řadit je nebo zaznamenávat, a také podporovat operace vrácení.
- Iterátor (Iterator): Poskytuje způsob sekvenčního přístupu k prvkům složeného objektu bez odhalení jeho vnitřní struktury.
- Mediator (Mediator): Definuje objekt, který zapouzdřuje, jak objekty spolu komunikují. Podporuje slabé spojení, zabraňuje explicitním odkazům mezi objekty.
- Memento (Memento): Bez narušení zapouzdření zaznamenává a externě uchovává vnitřní stav objektu, aby jej bylo možné později obnovit.
- Pozorovatel (Observer): Definuje závislost "jeden ku mnoha" mezi objekty tak, že při změně stavu jednoho jsou všechny závislé objekty automaticky upozorněny a aktualizovány.
- Stav (State): Umožňuje objektu měnit své chování při změně jeho vnitřního stavu. Zdá se, že mění třídu.
- Strategie (Strategy): Definuje rodinu algoritmů, zapouzdřuje každý a činí je zaměnitelnými. Umožňuje algoritmu měnit se nezávisle na klientech, kteří jej používají.
- Šablonová metoda (Template Method): Definuje kostru algoritmu v operaci, odkládá některé kroky na podtřídy. Umožňuje podtřídám předefinovat některé kroky algoritmu, aniž by měnily jeho strukturu.
- Návštěvník (Visitor): Představuje operaci, kterou je třeba provést nad prvky struktury objektů. Umožňuje definovat novou operaci bez změny tříd prvků, nad kterými operuje.