Zdravím všechny profíky, mám takový malý lama dotaz.
Chtěl bych se zeptat, proč jsou bezpečnější veřejné přítupové metody privátních datových složek lepší než publicitní datové složky.
Zdá se mi totiž že když vytvořím privátní složku třeba Kolo a pak metody getKolo a setKolo, které mají jen jeden řádek return kolo resp. kolo=param tak nezvýším bezpečnost programu proti záškodnickému programu ani o ň.
Nebo se mýlím?
Fórum › Offtopic
OOP - veřejné datové složky vs. veřejné přístupové metody
Tohle nesouvisi ani tak s bezpecnosti jako spis s principem zapouzdreni (http://cs.wikipedia.org/wiki/Objektově_orientované_programování). Kdyz potom budes chtit neco na vstupu zmenit, tak jen zmenis tu funkci, u primeho pristupu k promenne bys musel menit vsechny vyskyty nebo to nejak slozite resit jinak. Navic treba takovy setter muze mit navratovou hodnotu, coz se muse casto hodit.
A zaregistruj se.
xIxIs
Zdá se mi totiž že když vytvořím privátní složku třeba Kolo a pak metody getKolo a setKolo, které mají jen jeden řádek return kolo resp. kolo=param tak nezvýším bezpečnost programu proti záškodnickému programu ani o ň.
Pokud si se někde dočetl, že je to kvůli bezpečnosti, tak to byly trochu zkreslené informace. Gettery a settery se používají hlavně, protože pokud použiješ veřejné vlastnosti, jsou přístupy k nim pevně zadrátovány do kódu, takže už tam nemůžeš přidat třebas kontrolu nějakého rozsahu.
Lepší bude asi příklad. Řekněme, že máš objekt třídy Osoba. Pokud vlastnost vek bude veřejně přístupná (public), můžeš pak dotyčnému přiřadit věk třebas 99999, což je blbost. Jestliže ale vlastnost uděláš privátní a uděláš k ní getter (metoda getVek()) a setter (setVek(int vek)), můžeš do setVek() přidat kontrolu, aby věk byl třebas v rozmezí 0 – 120, a pokud nebude, můžeš vyhodit výjimku.
Existují i jazyky, které jsou v tomto ohledu „vymakanější“, takže můžeš normálně „přiřazovat“, ale vlastně se volají gettery a settery. Takhle to má myslím C#, Python a možná i některé další.
*EDIT: pozdě :o)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Veřejné úložistě dat — založil Johnny
Export veřejné části certifikátu do .cer — založil J.Nejedlý
Zobrazování veřejně dostupných informací v mojí aplikaci — založil Sparrow318
Přístupové Metody — založil Jakub Sosnovec
Přistupove prava do Image — založil TD
Moderátoři diskuze