![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 24.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przegladajac intrenet i czytajac pare ksiazek o temetyce php i programowania obiektowego w tym jezyku zauwazylem, ze praktycznie wiekszosc klas ma wszytkie swoje metody oznaczone jako publiczne (niezaleznie co one robia, czy sluze do modyfikowania zmiennych klasy czy innych zachowan). Kiedys uczono mnie (C++), ze publiczne powinny byc tylko te metody ktore sluza do komunikacji z klasa, wszytko co sie dzije w srodku klasy powinno byc ukryte dla innych klas. Byla tez zasada jezeli nie wiesz czy jakies pole/metoda ma byc publiczna/prywatna uczyn ja prywatna. DLaczego programisci php robia inaczej?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Zalezy na jaki przyklad kodu patrzalas - moze ktos kulawy w OOP pisal (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
@qbal - Za dużo chcą naraz, brak myślenia i umiejętności analizy, lenistwo, niechciejstwo... chyba to wszystko, co i inni programiści. Zważ, że w php niekoniecznie musisz programować obiektowo, a w miarę sensowny oop jest dostępny od wersji 5.0 tego języka.
Pozdrawiam. |
|
|
![]()
Post
#4
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Metody prywatne powinny być w klasie oznaczone jako private wtedy, gdy są specyficzne dla danego działania klasy. Jeżeli uważasz, że do metody dostęp powinna mieć tylko ta klasa, używasz słowa kluczowego private. Kiedy watro zauważyć, że metoda powinna być prywatna? Dobrym przykładem jest generowanie identyfikatora pliku cache biorąc jego nazwę, na przykład nazwę sprowadzamy do base64 i kodujemy na md5. Wówczas otrzymujemy idenyfikator pliku cache, który moze odczytać tylko klasa cache'u, bo po co to innej klasie? żeby namieszała w cache'u?
Jeżeli chcesz zabezpieczyć jakiś kod tylko dla klasy maciezystej, uzyj private. Kiedy je uzyjesz to Twoja sprawa, zalezy od logiki działania aplikacji i dostępu do niektórych części kodu. Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Problem jest też w tym, że w sumie od niedawna php posiada możliwość definiowania metod i atrybutów jako private lub protected.
Wiele osób ciągle jeszcze kopiuje swoje przyzwyczajenia z php4, i nawet gdy tworzy kod obiektowy, to zapomina o hermetyzacji. A rzeczywiście - warto z tego korzystać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:03 |