Zadejte hledaný výraz...

Volani metody z jine třídy

sysline
verified
rating uzivatele
(2 hodnocení)
18. 8. 2011 15:46:08
Sysline, on ji chce prostě zavolat, ne přepsat. Kdyby ji zdědil (což nedoporučuju), nemusí explicitně volat rodiče.
Ja jsem byl trochu OT a spis jsem reagoval na Alese, na to jestli je dedeni vhodne nebo ne, coz samozrejme v tomto pripade neni. Proste jsem chtel opravit to, jak se dedi.
Co se tyka tveho prikladu. Tak to je presne ukazka toho, kdy lze vyuzit sily statickych metod.
Aneb tvuj priklad trochu jinak
---------- Příspěvek doplněn 18.08.2011 v 15:47 ----------
Napsal Aleš Jiříček;691110
ja nevim, ja volani pres parent temer vubec nepouzivam a v podstate k tomu mam stejne duvody jako uvadi martin... ale hadat se o tom nebudu, nebudu se tu vydavat za uplneho odbornika, ale proste si me tim prekvapil, skoro by me to nenapadlo pouzivta tak jsem chtel vedet z jakeho duvodu bych vlastne mel...
Pomerne jasny priklad jsem uvadel nize. Ze ktereho je videt, jak velky je rozdil mezi this a parent
18. 8. 2011 15:46:08
https://webtrh.cz/diskuse/volani-metody-z-jine-tridy/strana/2#reply668156
V prvním příkladu mu posílám objekt typu DB a klient normálně zapisuje.
V druhém příkladu mu pošlu objekt typu Null_DB (přijme ho, protože Null_DB je potomek DB) a klient nezapisuje. Jde přitom o stejného klienta, který dostal jiný nástroj. Strategy pattern. :)
Klient se chová jinak, ale přitom se nezměnil.
Zatímco v tvém příkladu bych musel přepsat přímo v klientovi
na
// Ještě jsi do toho kromě statických metod zabudoval singleton, ale to už je opravdu na další rozepři u piva. :)
18. 8. 2011 15:51:06
https://webtrh.cz/diskuse/volani-metody-z-jine-tridy/strana/2#reply668155
hm
verified
rating uzivatele
(20 hodnocení)
18. 8. 2011 15:53:26
ja jsem zrovna pro singletony :)) pochytil sem je z kohany kde se to pouziva casto :D ale musim uznat ze kohana neni zrovna ukazkovy priklad skutecne dobreho OOP :))
18. 8. 2011 15:53:26
https://webtrh.cz/diskuse/volani-metody-z-jine-tridy/strana/2#reply668154
sysline
verified
rating uzivatele
(2 hodnocení)
18. 8. 2011 15:56:22
ja jsem ve svem prikladu zapomnel definovat class DB ale dejme tomu ze metoda write je umistena ve tride DB. Tim padem ji muzes pouzit bez pohledu jestli client ostane DB nebo zdedenou tridu Null_DB. Nemusis definovat nic navic. Jediny rozdil v nasich prikladech ej v tom, ze nemusis clientovi v konstruktoru predavat instanci DB ani ji pred tim vytvaret manualne.
18. 8. 2011 15:56:22
https://webtrh.cz/diskuse/volani-metody-z-jine-tridy/strana/2#reply668153
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
19. 8. 2011 21:22:40
jestli to myslite s OOP vazne, tak zapomente na tridy, OOP je o objektech, proboha!
zadne staticke nebo globalni metody, objekty (singletony) a nebo promenne - nic takoveho.
a ted k otazce - pokud chci znovupouzit neco, co jsem uz napsal (v tomto pripade asi ano), tak jde o kompozici, ne o dedicnost, nejlepe rovnou vyuziju dependency injection, jak ukazal Martin. pokud nejde o znovupouziti, tak mam jednoduse spatne navrzenou aplikaci - trida dela vic nez by mela, je nejvyssi cas pro refactoring.
19. 8. 2011 21:22:40
https://webtrh.cz/diskuse/volani-metody-z-jine-tridy/strana/2#reply668152
Pro odpověď se přihlašte.
Přihlásit