NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 14 - Template Method (šablonová metoda)

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Corrimson
Člen
Avatar
Corrimson:18.5.2013 18:21

Zdravím, nevím, jestli jsem to jenom nepochopil špatně, ale měl jsem za to, že abstraktní metody nemohou být private, protože je chceme implementovat v potomkovi. Jak to, že v tomto vzoru jsou private? Díky.

 
Odpovědět
18.5.2013 18:21
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Corrimson
Petr Nymsa:18.5.2013 18:30

Metody a datové položky mohou být privátní. Označíme je slovíčkem protected (v C#). Takto se napsaná metoda / položka zdědí ale je stále privátní. Public se dědí automaticky

Editováno 18.5.2013 18:30
Odpovědět
18.5.2013 18:30
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Kit:18.5.2013 19:29

Asi tomu nerozumím, ale podle mne se privátní označuje private a chraněné protected.

Když něco označím private, tak to v potomkovi neuvidím.

Editováno 18.5.2013 19:31
Odpovědět
18.5.2013 19:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Kit
Petr Nymsa:18.5.2013 20:24

No a když to označím jako protected, měl bych to v potomkovi vidět ale z venčí to bude stále private -> nepřístupné

Odpovědět
18.5.2013 20:24
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Corrimson
Člen
Avatar
Odpovídá na Petr Nymsa
Corrimson:19.5.2013 0:50

Jo, díky, asi jsem jenom příliš velký hnidopich, ale tady v tom UML jsou abstraktní metody označeny „-“ jako private, což při implementaci způsobí, že dostanu od kompilátoru vynadáno. Modifikátor protected by měl být značen #, pokud se nemýlím. Tak jsem se chtěl jenom ujistit o korektnosti toho zápisu a terminologii.

Editováno 19.5.2013 0:50
 
Odpovědět
19.5.2013 0:50
Avatar
Lukáš Kún
Člen
Avatar
Lukáš Kún:31.8.2017 10:09

Da se rict, ze se tohle da nahradit v C# injektovanim Func(Action) delegatu v argumentech metody (zde TemplateMethod) nebo to chapu spatne a ucel se lisi?

 
Odpovědět
31.8.2017 10:09
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Lukáš Kún
David Hartinger:31.8.2017 10:12

Tady jde o to, že několika třídami implementuješ různé algoritmy pro stejný účel a tak těm třídám dáš stejnou strukturu, aby to bylo přehledné. Nevím, jak ti k tomu pomůže Func, to jsi spíše špatně pochopil.

Odpovědět
31.8.2017 10:12
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.