Návrhový vzor
Návrhové vzory jsou opakovaně použitelná řešení pro vývoj softwaru. Slouží jako šablony, které mohou programátoři použít při vytváření aplikací. Nejsou specifické pro jednotlivé programovací jazyky, ale představují osvědčené postupy nebo heuristiky, které lze použít v různých programovacích prostředích.
Ačkoli návrhové vzory nejsou závislé na konkrétním jazyce, často zahrnují objekty nebo třídy. Proto se obvykle spojují s objektově orientovaným programováním. Jednotlivé vzory lze rozdělit do tří různých kategorií: 1) vzory pro vytváření objektů, 2) strukturální vzory a 3) vzory chování.
1. Vzory pro vytváření objektů
Návrhové vzory pro vytváření objektů popisují způsoby tvorby objektů pomocí metod vhodných pro různé situace. Například vzor „Singleton“ se používá k vytvoření základní třídy, která bude mít pouze jednu instanci. Běžným příkladem je globální proměnná definovaná ve zdrojovém kódu programu. Vzor „Object Pool“ se používá k vytvoření třídy s „zásobníkem“ objektů, které lze podle potřeby získat, místo aby se vytvářely znovu. Často se používá pro ukládání do mezipaměti.
2. Strukturální vzory
Strukturální návrhové vzory definují vztahy mezi objekty. Například vzor „Private Class Data“ se používá k omezení přístupu ke konkrétní třídě. Může tak zabránit nežádoucím úpravám objektu. Třída „Decorator“ naopak umožňuje přidávat objektu chování a stavy za běhu (runtime). Programátorům tak poskytuje flexibilitu přidat k objektu tolik tříd, kolik je potřeba. Příkladem je avatar ve videohře, který v průběhu hry získává zbraně, brnění a předměty. Příslušně pojmenovaná třída „Decorator“ by pro tento proces poskytla vhodný rámec.
3. Vzory chování
Návrhové vzory chování popisují chování objektů, například způsob, jakým spolu komunikují. Jedním z příkladů je vzor „Command“, který popisuje objekty provádějící příkazy. Vzor „Memento“ zaznamenává stav objektu, aby jej bylo možné obnovit do uloženého stavu. Tyto dva vzory lze použít společně k provádění operací Zpět a Znovu v programu.
Shrnutí
Každá ze tří kategorií zahrnuje několik dalších návrhových vzorů, které mohou programátoři použít. Ačkoli vzory poskytují vývojářům softwaru užitečné šablony, někdy jsou kritizovány za to, že jsou pro určité aplikace zbytečné nebo nedostatečně konkrétní. Návrhové vzory jsou proto užitečnými nástroji programování, ale při vytváření dobře navrženého softwarového programu není nutné je přesně dodržovat.
Otestujte své znalosti