IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Template Method (šablónová metóda)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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.

 
Odpovedať
18.5.2013 18:21
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovedá 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

Editované 18.5.2013 18:30
Odpovedať
18.5.2013 18:30
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovedá 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.

Editované 18.5.2013 19:31
Odpovedať
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
Odpovedá 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é

Odpovedať
18.5.2013 20:24
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Corrimson
Člen
Avatar
Odpovedá 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.

Editované 19.5.2013 0:50
 
Odpovedať
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?

 
Odpovedať
31.8.2017 10:09
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá 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.

Odpovedať
31.8.2017 10:12
New kid back on the block with a R.I.P
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!