Sobes.tech
Junior

Jaké vzory návrhu znáte?

sobes.tech AI

Odpověď od AI

Generátory:

  • Singleton: Zaručuje, že existuje pouze jedna instance třídy a poskytuje k ní globální přístupový bod.
  • Factory Method: Definuje rozhraní pro tvorbu objektu, ale umožňuje podtřídám rozhodnout, který konkrétní třída bude instanciována.
  • Abstract Factory: Poskytuje rozhraní pro tvorbu rodin souvisejících nebo závislých objektů, aniž by specifikoval jejich konkrétní třídy.
  • Builder: Odděluje konstrukci složitého objektu od jeho reprezentace, takže stejný konstrukční proces může vytvářet různé reprezentace.
  • Prototype: Vytváří objekty duplikací existujícího vzoru (prototypu), místo opakovaného provádění konstrukčního procesu.

Strukturální:

  • Adapter: Převádí rozhraní jedné třídy na jiné rozhraní, které očekávají klienti. Umožňuje spolupráci tříd s neslučitelnými rozhraními.
  • Bridge: Odděluje abstrakci od její implementace, umožňuje jejich nezávislou změnu.
  • Composite: Skládá objekty do stromových struktur pro reprezentaci hierarchií "části a celek". Umožňuje klientům pracovat jednotně s jednotlivými objekty i složenými strukturami.
  • Decorator: Dynamicky přidává nové odpovědnosti k objektu obalením do speciálního dekorátoru.
  • Facade: Poskytuje sjednocené rozhraní k sadě rozhraní podsystému. Zjednodušuje používání podsystému.
  • Flyweight: Používá sdílený stav mezi mnoha malými objekty ke snížení paměťové náročnosti a zvýšení výkonu.
  • Proxy: Poskytuje zástupce objektu, který řídí přístup k originálnímu objektu.

Behaviorální:

  • Chain of Responsibility: Přenáší požadavek přes řetězec zpracovatelů. Každý zpracovatel rozhodne, zda požadavek zpracovat nebo předat dalšímu.
  • Command: Zapouzdřuje požadavek jako objekt, což umožňuje parametrizovat klienty různými požadavky, řadit požadavky do fronty nebo je zaznamenávat.
  • Interpreter: Definuje gramatické reprezentace jazyka a obsahuje interpretér pro interpretaci vět v tomto jazyce.
  • Iterator: Poskytuje způsob sekvenčního přístupu ke všem prvkům složeného objektu, aniž by odhalil jeho vnitřní reprezentaci.
  • Mediator: Definuje objekty, které řídí interakci mezi sadou jiných objektů. Podporuje slabé spojení, umožňuje objektům komunikovat bez přímého odkazování na sebe navzájem.
  • Memento: Umožňuje ukládání a obnovení vnitřního stavu objektu bez narušení inkapsulace.
  • Observer: Definuje závislost "jeden ku mnoha" mezi objekty, takže při změně stavu jednoho jsou všechny závislé objekty upozorněny a automaticky aktualizovány.
  • State: Umožňuje objektu měnit své chování v závislosti na jeho vnitřním stavu. Každý stav je inkapsulován v samostatné třídě.
  • Strategy: Definuje rodinu algoritmů, inkapsuluje je a činí je vzájemně zaměnitelnými. Umožňuje výběr algoritmu za běhu.
  • Template Method: Definuje kostru algoritmu v operaci, odkládá některé kroky na podtřídy. Umožňuje podtřídám definovat kroky algoritmu bez změny struktury samotného algoritmu.
  • Visitor: Představuje operaci, která má být provedena nad prvky struktur objektů. Umožňuje definovat nové operace bez změny tříd prvků, na kterých působí.