Návrhové vzory

0 Comments

koncept návrhových vzorů byl kritizován některými v oblasti informatiky.

se zaměřuje na nesprávný problém

potřeba vzorů vyplývá z použití počítačových jazyků nebo technik s nedostatečnou schopností abstrakce. Za ideálního factoringu by neměl být koncept kopírován, ale pouze odkazován. Pokud je však místo kopírování odkazováno na něco, neexistuje žádný“ vzor “ pro označení a katalog. Paul Graham píše v eseji pomsta pitomců.

Peter Norvig poskytuje podobný argument., Ukazuje, že 16 z 23 vzorů v knize Design Patterns (která je primárně zaměřena na C++) je zjednodušeno nebo eliminováno (prostřednictvím přímé jazykové podpory) v Lisp nebo Dylan.

postrádá formální základy

studium návrhových vzorů bylo nadměrně ad hoc a někteří argumentovali, že koncept musí být velmi formální. Na Oopsla 1999 byl čtyřčlenný Gang (s jejich plnou spoluprací) podroben show trial, ve kterém byli „obviněni“ z mnoha zločinů proti informatice., „Usvědčili“ je „porotci“, kteří se procesu zúčastnili.

vede k neefektivním řešením

myšlenka návrhového vzoru je pokusem standardizovat to, co již bylo přijato osvědčenými postupy. V zásadě se to může jevit jako prospěšné, ale v praxi to často vede ke zbytečné duplikaci kódu. Je to téměř vždy efektivnější řešení, jak používat dobře promyšlenou implementaci, spíše než“ jen stěží dost dobrý “ designový vzor.,

výrazně neliší od ostatních odběrů

Někteří autoři tvrdí, že návrhové vzory don“t se výrazně liší od jiných forem abstrakce, a že použití nové terminologie (půjčil si od architektury společenství) k popisu stávajících jevů v oblasti programování je zbytečné. Paradigma Model-View-Controller je nabízena jako příklad „vzoru“, který předchází konceptu „návrhových vzorů“ o několik let., Dále se domnívají, že hlavním přínosem Návrhové Vzory společenství (a Gang Čtyři knihy) bylo použití Alexander“s vzor jazyk jako forma dokumentace; praxe, která je často ignorována v literatuře.


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *