Návrhový vzor: Porovnání verzí

Přidáno 70 bajtů ,  před 5 lety
bez shrnutí editace
{{upravit}}
 
'''Návrhový vzor''' ({{vjazyce|en}} {{cizojazyčně|en|design pattern}}) v [[softwarové inženýrství|softwarovém inženýrství]] představuje obecné řešení problému, které se využívá při návrhu [[software|počítačových programů]]. Návrhový vzor není [[knihovna (programování)|knihovnou]] nebo částí [[zdrojový kód|zdrojového kódu]], která by se dala přímo vložit do našeho programu., Jednájedná se o popis řešení problému nebo šablonu, která může být použita v různých situacích. [[objektověObjektově orientované programování|Objektově orientované]] návrhové vzory typicky ukazují vztahy a interakce mezi [[třídaTřída (programování)|třídami]] a [[Objekt (programování)|objekty]], aniž by určovaly implementaci konkrétní třídy. [[algoritmusAlgoritmus|Algoritmy]] nejsou považovány za návrhové vzory, protože řeší konkrétní problémy a nikoliv problémy návrhu.
 
Návrhové vzory nepocházejí ze softwarového inženýrství – jsou zcela běžné v každodenním životě. K asi nejznámějším a nejstarším příkladům patří [[architektura]]. [[gotikaGotika|Gotickou]] katedrálu poznáteje možné poznat už zdaleka právě proto, že tehdejší architekti a jejich stavební společnosti používali stejnýchstejné návrhovýchnávrhové vzorůvzory.
 
== Historie ==
Vznik návrhových vzorů se datuje do šedesátých let dvacátého století, kdy pro vzory v architektuře použil tento termín Christopher Alexandr s kolegy. Šlo o odpověď na různé moderní styly v architektuře, které ale byly nepraktické. V počítačových vědách se návrhové vzory prvně objevují na konferenci [[OOPSLA]] v roce 1987 v Orlandu, kde je použili pánové [[Ward Cunningham]] a [[Kent Beck]], kteří vycházeli z několika návrhových vzorů připravených v jazyce [[Smalltalk]]. Tyto vzory byly určeny hlavně pro začátečníky v tomto programovacím jazyce Smalltalk.
 
Další důležitou věcí pro návrhové vzory bylo vytvoření skupiny GoF (Gang of Four) na začátku devadesátých let. Tuto skupinu tvořili [[Erich Gamma]], Richard Helm, Ralph Johnson a [[John Vlissides]]. V roce 1991 na konferenci [[ECOOP]] představili prvních pár návrhových vzorů ([[Composite]], Decider, [[Observer]] atd.).
 
V říjnu roku 1993 se uskutečnilo v horách nedaleko Colorada setkání, kde byly položeny základy pozdější Hillside group. Tato skupina je nevýdělečnou organizací kladoucí si za cíl zlepšit vývoj softwarových systémů. Je sponzorem konference PloP (Pattern Languages of Programming) a dalších podobných konferencí.
 
Nicméně základním kamenem pro návrhové vzory se stala kniha [[Design Patterns: Elements of Reusable Object-Oriented Software]], jejímiž autory jsou Erich Gamma, Richard Helm, Ralph Johnson a John Vlissides také známí jako GoF''Gang of Four''. V oblasti návrhových vzorů je nazývána knihou knih a i dnes je stále aktuální.
 
Mezi další důležité knihy týkající se návrhových vzoru patří:
* Fowler, Martin (2002). Patterns of Enterprise Application Architecture. Addison Wesley. ISBN 978-0-321-12742-6.
* Hohpe, Gregor; Bobby Woolf (2003). Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley. ISBN 0-321-20068-3.
 
== Základní typy ==
=== Creational Patterns (vytvářející) ===
Creational Patterns řeší problémy související s vytvářením objektů v systému. Snahou těchto návrhových vzorů je popsat postup výběru třídy nového objektu a zajištění správného počtu těchto objektů. Většinou se jedná o dynamická rozhodnutí učiněná za běhu programu.
 
=== Structural Patterns (strukturální) ===
Structural Patterns představují skupinu návrhových vzorů zaměřujících se na možnosti uspořádání jednotlivých tříd nebo komponent v systému. Snahou je zpřehlednit systém a využít možností strukturalizace kódu.
 
=== Behavioral Patterns (chování) ===
Behavioral Patterns se zajímají o chování systému. Mohou být založeny na třídách nebo objektech. U tříd využívají při návrhu řešení především principu dědičnosti. V druhém přístupu je řešena spolupráce mezi objekty a skupinami objektů, která zajišťuje dosažení požadovaného výsledku.
* [http://www.algoritmy.net/article/51224/Navrhove-vzory Návrhové vzory] – studijní materiál v češtině
 
[[Kategorie:Návrhové vzory| ]]
[[Kategorie:Programování]]