Posted in: Vývoj počítačů

Návrhové vzory

  • Představují obecné řešení problémů
  • Není knihovnou nebo částí zdrojového kódu
  • Je popis řešení problému nebo šablona, která může být použita v různých situacích
  • Objektově orientované návrhové vzory ukazují vztahy a interakce mezi třídami a objekty aniž by určovali implementaci konkrétní třídy
  • Algoritmy nejsou návrhové vzory, protože řeší konkrétní problémy, nikoliv problémy návrhu
  • Vycházejí z praxe
  • Hlavní předností je hotové katalogizované řešení
  • Popis návrhového vzoru dává veškeré potřebné informace, výhody, nevýhody

Tematické okruhy

  • Objektové návrhové vzory – určeny pro analytiky, designery a programátory
  • Architektonické vzory – vzory situací při mapování analytických modelů do designu
  • Interakční vzory – vhodné pro analytiky, designery middlewaru
  • Analytické vzory – vzory pro návrh rozsáhlých informačních systémů
  • Vzory pro aplikace v reálném čase – vhodné pro návrháře speciálních IS pracujících v reálném čase
  • Vzory pro servisně orientovanou architekturu
  • BPM vzory

Výhody použití

  • Ulehčení práce
  • Snížení počtu chyb
  • Snadnější rozšiřování programů
  • Dodržení principů OOP
  • Lepší komunikace skupin

Struktura

  • Zde můžeme užít definici tvůrce návrhových vzorů: Každý popisovaný návrhový vzor musí být formulován ve formě pravidel, které stanovují vztah mezi kontextem, silami působících v tomto kontextu a konfigurací, která dovoluje těmto silám vyřešit vlastní působení v rámci kontextu.
  • Název, stručné představení, účel
  • Demonstrační příklad
  • Obecná struktura s vnitřními vztahy objektů
  • Popis implementace, konkrétní příklad
  • Známá použití, vztahy s ostatními vzory

Objektové návrhové vzory

  • Každý vzor popisuje množinu vzájemně souvisejících objektů a tříd
  • Hlavním důvodem pro jejich používání je jejich znuvupoužitelnost
  • Kategorie: tvořivé, strukturální, zrychlování
  • Tvůrčí vzory jsou součástí procesu vytváření objektů
  • Strukturální vzory se zabývají skládáním objektů a tříd
  • Zrychlování určují jak třídy nebo objekty vzájemně reagují a jak jsou rozděleny jejich odpovědnosti
  • V GoF máme 23 základních vzorů, které jsou rozděleny do 3 skupin

Dělení vzorů

  • V praxi dělíme návrhové vzory dle oblasti, do které spadají

Seznam vzorů dle GoF

Kategorie návrhových vzorů

Vztahy mezi vzory

Vytvářecí vzory

  • Facotory Metod – odvozuje třídy od třídy vytvářející objekty
  • Abstract Factory – vytváří objekty více souvisejících tříd
  • Builder – vytváří složený objekt postupně pomocí protokolu
  • Prototype – objekty se vytvářejí kopírováním od prototypových objektů
  • Singelton – třída, která vytváří pouze jednu jedinou instanci

Strukturální vzory

  • Adapter – přizpůsobení rozhraní třídy jiným rozhraním
  • Composite – hierarchie tříd tvořená dvěma druhy objektů
  • Proxy – zástupce jiného objektu
  • Flyweight – struktura pro efektivní sdílení velkého množství objektů
  • Facade – jednotné rozhraní pro celý systém
  • Bridge – oddělení rozhraní od implementace
  • Decorator – dynamické přidání funkčnosti objektům

Vzory chování

  • Template Method – abstraktní definice algoritmu po jednotlivých krocích
  • Interpreter – reprezentace gramatiky jako hierarchie tříd
  • Mediator – odstraňuje nutnost referencí spolupracující objekty
  • Chain of Responsibility – zasílání zpráv pomocí zřetězených objektů
  • Observer – definování závislosti objektu k dalším objektům
  • Strategy – flexibilní zapouzdření algoritmu do objektu
  • Command – zapouzdření požadavku na funkci
  • State – zapouzdření stavu, možnost změny chování v objektu
  • Visitor – zapouzdření chování
  • Iterator – procházení agregovaných objektů

Vzory v praxi

Jedináček (singelton)

  • Je určen pro tvorbu objektů a případná změna chování je dosahována změnou instance objektu
  • Vzor se skládá jen z třídy jedináčka
  • Třída implementující vzor zapouzdřuje přístup ke sdílené instanci a je zodpovědná za její vytvoření
  • Klient k instanci přistupuje pomocí přístupového budu
  • Vzor užijeme tam, kde je požadován jediný výskyt instance v rámci aplikace nebo systému
  • Implementace vzoru je závislá na zvolené technologii
Posted in: Vývoj počítačů

Video tutoriál C++ pro začátečníky

Tutoriál, na který odkazuji umístila na svůj Youtube kanál Saldina Nurak. Výhodou je, že její angličtina je velmi dobře srozumitelná i začátečníkům a lidem, kterým jazyky nejdou. Určitou výhodou může být ona sama, jde o velmi pohlednou slečnu, která vykládá úplné začátky skutečně srozumitelně.
A ruku na srdce, kdo by se u výkladu krom kódu nechtěl podívat na hezkou ženu, přeci jen tutoriál má 10 hodin, ale je přehledně třízen do kapitol, jejichž seznam je v popisku.

Back to Top