Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: technika programowania obiektowego
Forum PHP.pl > Forum > PHP > Object-oriented programming
qbal
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?
NuLL
Zalezy na jaki przyklad kodu patrzalas - moze ktos kulawy w OOP pisal questionmark.gif winksmiley.jpg
Cysiaczek
@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.
Athlan
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 smile.gif
DeyV
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ć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.