![]() |
![]() ![]() |
![]() |
![]()
Post
#21
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
W Javie to widac: ... Przepraszam dr_bonzo, ale co widac, bo jak dal mnie z Twojego przykladu nic nie wynika odnosnie sensu uzywania metod innych niz publiczne. -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego używać metod prywatnych lub chronionych? Z powodów bezpieczeństwa. Wyobraź sobie np. logowanie. oczywiście chcesz, żeby dało się zalogować użytkownika wpisując login i hasło, ale także tylko mając id i hash sprawdzający. Jeśli zadeklarujesz sobie funkcję (prywatną lub chronioną) authorize($id), która odpowiadać będzie za ustawienie zmiennych sesyjnych i podniesienie uprawnień, to metodę tą wywołasz tylko i wyłącznie z tej klasy. Jesli natomiast będzie funkcją public, to ktoś moze wywołać tą funkcje spoza klasy logując sie na danego usera tylko podając id. Takie coś powoduje niebezpieczeństwo w przypadku błędu w kodzie.
A dlaczego wyodrębnić można metode authorize? Po to, żeby nie powtarzać 2 razy tego samego kodu. Czy wybierzemy protected czy private zależy od tego czy chcemy mieć możliwość używania tej metody w klasach pochodnych -------------------- Rozwiąż test php
|
|
|
![]()
Post
#23
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Ja stosuje metody prywatne po to aby ograniczyc dlugosc metod - kod lepiej wyglada kiedy metody maja 40 linii a nie po 100
![]() ![]() -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
function funcTwo(ClassTwo $o) ponieważ wymuszasz, aby przeakzany argument był instacją klasy ClassTwo
function funcOne(Iface $o) A tutaj co wymuszasz? Żeby przekazywany argument implementował interfejs czy, żeby to był obiekt który implementuje interfejs? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#25
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Obiekt implementujący interfejs
![]() Pisałem już kiedyś. Jak klasa implwementuje interfejs, to zyskuje nowy typ, będący nazwą intefejsu. Czyli klasa.
To klasa typu A oraz viewable. Można wymusić jej obiekt zarówno po nazwie klasy, jak również po nazwie interfejsu. Czyli kod:
Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 17:59 |