![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze rozumuję, pierwszy raz pisze opp php (powiedzmy).
robię sobie klase. ma ona jakieś tam wlaściwości i metody. powiedzmy user, ktory jest wczytywany z bazy - jakie przyjąć kryteria co do tego, ktora ze zmiennych powinna być typu private, public, czy protected? jeśli mam profil->imie_i_nazwisko to czy lepiej to zostawić public i zmieniać jej wartość bezposrednio czy lepiej bawić się dla każdej zmiennej w metody setNazwisko($nazwisko) itd? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%) ![]() ![]() |
Public - powinny być te dane, które chcesz wyświetlić na stronie, np danie imienia i nazwiska na stronie w np. panelu nie jest złym pomyśłem, więc można dać public. Private to dane, które nie koniecznie powinny być pokazane, ale są ważne dla całego procesu działania systemu, no nie wiem, może ID? Co do protected, są to takie dane które będą używane tylko w jednej klasie, i w klasach dziedziczących. Trudno podać mi teraz przykład. Ale wiesz, to wychodzi w praniu.
Pozdro ![]() -------------------- Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 9 Dołączył: 7.03.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
"Public - powinny być te dane, które chcesz wyświetlić na stronie, np danie imienia i nazwiska na stronie w np. panelu nie jest złym pomyśłem, więc można dać public. Private to dane, które nie koniecznie powinny być pokazane, ale są ważne dla całego procesu działania systemu, no nie wiem, może ID? Co do protected, są to takie dane które będą używane tylko w jednej klasie, i w klasach dziedziczących. Trudno podać mi teraz przykład. Ale wiesz, to wychodzi w praniu. "
co ![]() ![]() ![]() public, protected i private to modyfikatory dostępu - kontrolują dostęp do właściwości klasy. Wszystkie właściwości można wyświetlać, ale tylko do tych co mają modyfikator public masz dostęp spoza klasy w postaci $obiekt->właściwość. Protected i private wymagają innego dostępu: class A { private $pri="coś"; public function a() { echo $this->pri; } } $x = new A; echo $x->a(); Protected i private nie dają bezpośredniego dostępu spoza klasy, przy czym właściwości private nie można dziedziczyć a protected tak. Tu nie chodzi o to, że coś się nazywa public, bo ma być wyświetlone na stronie. Metody dostępu służą do kontroli dostępu i to od ciebie zależy czy taka ci jest potrzebna. Sa skrypty na kilka stron A4 używające wyłącznie public, a są i na trzy linijki używające tylko private, np. klasyczny singleton, gdzie chcemy aby powstał tylko i wyłącznie jeden obiekt klasy. To jakich modyfikatorów powinieneś użyć zależy od przeznaczenia web-projektu i sposobu jego tworzenia (jedna osoba / kilka osób). Tu w grę wchodzi wcześniejsze zrobienie planu w języku UML. Bez zrozumienia OOP (a do tego trzeba przestudiować trochę przykładów, szczególnie wzorców projektowych) skrypty wygladają jak obiektowe tylko z pisowni, w rzeczywistości są tam zwykłe funkcje ubrane w 'skórkę obiektową'. Myślę, że jeśli sam robisz prosty skrypt i nie korzystasz ze wzorców projektowych typu: fabryka, singleton, obserwator itp. to całkowicie ci wystarczy zwykły dostęp typu public, no chyba, że chcesz sobie poćwiczyć zastosowanie modyfikatorów dostępu. Ten post edytował korkie 10.05.2009, 12:37:12 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.05.2025 - 22:46 |