Komentáře k článku
Návrhové principy: SOLID

V současné době jsou stále populárnější návrhové vzory, které nám ukazují, jak řešit typické problémy při návrhu software v objektově orientovaných jazycích. Návrhové vzory jsou však jen konkrétní aplikace hlubších principů, na kterých by měl být objektově orientovaný návrh založen. Tento článek má za úkol čtenáře stručně seznámit s návrhovými principy SOLID, které formuloval Robert „Uncle Bob“ C. Martin.
Re: Návrhové principy: SOLID
Dobry clanek
Pred rokem bych nerekl ze se budu na zdrojak chodit s tim ze se na nem dozvim neco uzitecneho. Jen tak dal
Re: Návrhové principy: SOLID
To jsme rádi. Děkujeme! 8-)
Re: Návrhové principy: SOLID
Naprosto souhlasim :) Jen tak dal!
Re: Návrhové principy: SOLID
Dobry clanek, pouze bych u odbornych vyrazu zminil i slovicko v anglictine, ktere je rozhodne vice zazite nez jeho cesky prepis
nepiste o me
Díky za připomenutí. Neustále zapomínám rozdělit odpovědnost do tříd a vyrábím hybridky a pak mám chaos i v hlavě a nakonec to stejně rozdělím.
Re: Návrhové principy: SOLID
K 3): Je rozdíl mezi podtypem a podtřídou, a pokud vím, tak LSP definuje pojem podtyp. Problém s LSP je v tom, že se substituovatelnost těžko ověřuje (je ekvivalentní HP) a snadno poruší třeba při úpravě nadtřídy. Lze však formulovat omezení pro nadtřídy tak, že podtřídy pak budou automaticky podtypy. Tato omezení budou závislá na programovacím jazyce, kde pro běžně používané OO jazyky bude IMO dostačovat: žádné virtuální metody, žádná mutace dat, žádné veřejně přístupné členské funkce (tj. pouze private funkce) a zbytek kódu by samozřejmě neměl být schopen rozlišit typ pomocí mechanizmů jako je reflexe apod.
Re: Návrhové principy: SOLID
Bingo!!
Re: Návrhové principy: SOLID
LSP se dá formulovat i takhle: podtřídy musí být podtypy.
(V kontextu téhle diskuse je zajímavé, že zrovna Eiffel snadno umožňuje tohle pravidlo porušit, protože parametry metod jsou kovariantní :-) )
Eiffel
Myslenka Design by Contract je nejlepe implementovana v Eiffelu, odkud pochazi a kde hraje klicovou ulohu.
Jenom skoda, ze Eiffel moc lidi nezna, vidim jej jako idealni prostredek pro vyuku OOP, byt treba pak nakonec clovek dela v Jave. Clovek si proste z Eiffelu odnese uzitecne navyky …
LSP pohádka
Matrixový příklad k LSP je na http://phpmaster.com/liskov-substitution-principle/.