Autor | Zpráva | ||
---|---|---|---|
julius Profil * |
#1 · Zasláno: 21. 2. 2013, 19:53:02
Chtěl bych se zeptat zdejších odborníků, jaký je jejich názor, či jaký je obecně uznávaný postup pro volání veřejných metod uvnitř jiných veřejných metod téže třídy.
Jedná se totiž o to, že když se vám v jedné nebo více veřejných metodách opakuje stejný kousek kódu, lze vytvořit soukromou metodu, do které tento kousek kódu uzavřete a pak už tuto soukromou metodu v ostatních veřejných metodách jenom voláte podle potřeby. Problém ale nastal, když jsem měl dvě veřejné metody, kdy první dělala skoro to samé, co ta druhá, takže jsem se nechal zlákat a druhou jsem zavolal z té první a tu první jsem pak ještě doplnil o zbývající funkcionalitu. Člověk to má hned hotové, ale po čase se objeví problém v tom, že když chcete editovat tu druhou, logicky to ovlivní i tu první, ze které je volaná. Někdy je to v kladném slova smyslu, ale někdy, což je i ten důvod, proč sem písu, se prostě ta změna do té volající promítne negativně a úplně její funkcionalitu pokazí. Takže by mě zajímalo, jaký je na tohle váš názor. Je lepší volat pouze soukromé metody uvnitř veřejných a nebo je dobré volat i veřejné uvnitř veřejných? |
||
preca1 Profil |
#2 · Zasláno: 21. 2. 2013, 21:51:36
Zdravim,
volat veřejnou z veřejný neni problém. Moc nevidim rozdíl mezi „když se vám v jedné nebo více veřejných metodách opakuje stejný kousek kódu“ a „když jsem měl dvě veřejné metody, kdy první dělala skoro to samé, co ta druhá“ Respektive, kde tam nastal problém a proč nešlo tu společnou funkcionalitu vytknout do jiné metody (nejspíš privátní) a tu potom v obou metodách použít (jak píšeš v tý první větě)? „se prostě ta změna do té volající promítne negativně a úplně její funkcionalitu pokazí“ - pokud tam máš takovouhle závislost, tak je to špatně. |
||
Tori Profil |
#3 · Zasláno: 21. 2. 2013, 22:27:57
Ta otázka mi moc nedává smysl, vzhledem k předchozím dvěma odstavcům. Potřebujete-li tu funkcionalitu volat zvenčí - uděláte veřejnou metodu. Potřebujete-li zavolat jinou metodu téže třídy - zavoláte ji. To jsou přeci dvě různé věci, ne?
|
||
tiso Profil |
#4 · Zasláno: 22. 2. 2013, 01:11:19
julius: áno, občas sa stáva, že spoločný kód vyhodíš do metódy a potom ju potrebuješ zmeniť a ten kód už nebude vyhovovať všetkým volajúcim metódam. Musíš spraviť také úpravy, aby si niečo iné nepokazil.
|
||
Časová prodleva: 11 let
|
0