Autor Zpráva
julius
Profil *
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
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0