Názory ke článku C# - pilíře OOP, 1.díl
17. 2. 2009
Zajimave priklady. Dedicnost by mela byt zalozena na generalizaci/specializaci. OOP by vice mene melo odrazet objekty realneho sveta.
Ale tyhle priklady mi prijijdou zavadejici - dum je specialni verzi cihly. Stejne jako rohlik je specialni verzi pekarny.
17. 2. 2009
Reagoval na komentář od uživatele kofis :
To je pravda, ale asi to chce iba iny nazov triedy (alebo ani nie tak triedy ako interface). Napr. 'IPecivo'.
Ine by bolo keby treda Pekaren mala aj metody, ktore su hlupost pre chlieb, napr. ZalozOhenVpeci()
17. 2. 2009
Ahoj, souhlasim s kofisem, spatne zvolene nazvy trid a v podstate cely navrh mi prijde dosti zavadejici a zmatecny. Urcite se da vymyslet spousta prikladu, na kterych to hlavne zacinajicim programatorum bude srozumitelnejsi ...
Na to, že ten článek má pokrýt téma dědičnosti, tak ho pokrývá tak z desetiny. Nic o nějakých dědičnosti ("is-a" a "has-a"), nic o overridingu, nic o tom, jak je v C# s několikanásobnou dědičností a s tím souvisejícími rozhraními, nic o tom, že se nedědí jen metody (což z článku nevyplývá), ale i další věci jako třeba vlastnosti. Myslím, že by neuškodilo třeba poukázání na modifikátory abstract a virtual a nějaké příklady k nim. Dalo by se toho říct víc, ale tohle jsou jen věci, které mě hned po přečtení napadly.
A možná by to k popisu hierarchie těch ukázkových příkladů chtělo udělat nějaký UML graf, z něj jdou potřebné vztahy vyčíst na první pohled.
I mé pocity jsou veskrze velmi rozpačité. Sice je pěkné, že jsi začal brát základy nějakých "složitějších" situací v C# a vzhledem k tomu, že nejsem pokročilý, tak bych to i ocenil, leč tvé metody a třídy, to je děs běs... Občas mi přišlo, že je načata myšlenka, která není dokončená a veskrze jsem si z toho nevzal nic. Přijde mi, že je to napsané narychlo, při cestě domů ve vlaku na netbooku. Inu, snad to bude příště lepší
Já ti nevím, ale podle mě je příklad s pekárnou úplně špatně. Dokonce se nebojím říct, že je to až ukázková chyba ve využití dědičnosti. Co má pekárna společného z rohlíkama? Dá se pekárna sníst? Dají se rohlíky zbourat? Ne, jediná spojitost je v tom, že rohlíky se pečou v pekárně a to nemá s dědičností nic společného.
[1]Existuje taková pomůcka, jak poznat dědičnost. Otázky "Je?" a "Obsahuje?". Pokud se na otázku "Je?" dá odpovědět kladně, jedná se o dědičnost. "Je rohlík pekárna?" Není. Ale "Obsahuje pekárna rohlík?" V určitých chvílích určitě ano, tzn. že se jedná o spojování tříd (tady si nejsem jistý termínem...)
[2]A navíc příklad vůbec neodpovídá pravidlu: "Potomci by se měli být schopni vydávat za rodiče.", které pro dědičnost platí.
Takový klasické příklad dědičnosti: Máme třídu Auto, ta bude rodičem a bude třeba obsahovat metodu "jezdi()". A pak máme třídy PopelářskeAuto a PolicejniAuto. Popelářské auto má navíc metodu vysyp() a policejní blikej(). Podle [1] "Je PolicejniAuto Auto? Ano. A podle zásady [2] "Dokáže PopelářskeAuto jezdit?" Ano. Což by se o třídě Pekárna a ty další říci nedalo.
A proto bych byl pro úpravu tohoto článku. Rozhodně není vhodný pro nováčky v OOP, protože je naučí programovat sice ukázkově, ale naprosto špatně.
Reagoval na komentář od uživatele Tomáš Bartoň : Ad [1] - Právě to "Je?" je ten "is-a" typ dědičnosti a "Obsahuje?" je typ "has-a", no nic, snad se příští díl povede lépe.
Článek jsem psal při hodinách cvičení STT ve škole. Děkuju za kritku. Slybuju příště se polepším. Tohle není moc zrovna povedený článek :(
19. 2. 2009
Reagoval na komentář od uživatele Petr Láslo :
Pokud se chcet dělit o zkušenosti a učit ostatní, tak nemůžete být o 3 stránky před nimi.Věnujte se studiu a netvařte se že něco víte. Ještě se musíte dost učit a nabrat více zkušeností, prostudovat více literatury, vytvořit pár reálných projektů, než budete moci radit a ukazovat. Přeji Vám mnoho štěstí.
Reagoval na komentář od uživatele Petr Láslo :
Navrhuji, abys další pokračování dal někomu ke kritice, než ho pošleš k uveřejnění. A taky bych byl pro editaci tohoto kusu...
15. 1. 2015
Zdarec. Můžu říct, že jako nováček, kterej se učí teď v C sharpu OOP. Po týdnu učení( intenzivniho) jsem z tvýho článku nepochopil nic. Musel jsem si pustit video na youtube, abych pochopil co jsou dedicnosti a abych mohl ten tvuj vytvor podle toho opravit aby me to fungovalo. A dodat dva dalsi radky.
Presto preju hodne zdaru do budoucna.
Diky Dundy
PS: mozna se to da takhle spustit, ale me to teda absolutne neslo, kdyz jsem to prepisoval.