![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Czy może mi ktoś wyjaśnić po co w poniższym kodzie jest użyty interface i jakie korzyści nam daje?(jakieś przykłady?). Kod pochodzi ze strony: http://pl.wikibooks.org/wiki/PHP/Autoryzacja_i_logowanie Wygląda tak: Kod interface storage { public function login($name, $pass);//1 } Jest tam niby wyjaśnienie, ale nic mi ono nie mówi i kompletnie nie mogę dopasować do tego żadnego przykładu. Przeglądnąłem już kilka stron i szukałem informacji w googlach nt tworzenia interfaców (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Proszę o wyjaśnienie |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Od strony technicznej interfejs to sztuczny twór - jest to informacja dla programisty oraz interpretera, jaką funkcjonalność musi implementować pewna klasa, aby mogła być używana do określonego zadania. Weźmy na przykład tę autoryzację z Wikibooks - różne aplikacje mogą wspierać przechowywanie danych w różnych miejscach - w bazie danych, w plikach tekstowych, z ustawień systemu operacyjnego... system logowania dzięki interfejsowi może powiedzieć: jeśli chcesz dodać nowy mechanizm autoryzacji, musisz w swojej klasie zaimplementować następujące metody, gdyż ja za ich pomocą będę się z tym mechanizmem komunikować. A dzięki temu, że interfejs jest elementem języka oraz trzeba w takiej klasie zadeklarować implements mojInterfejs, system logowania ma możliwość sprawdzenia, że faktycznie dostał obiekt mechanizmu autoryzacji, z którego potrafi korzystać.
W językach ze statycznymi typami zmiennej idzie się jeszcze dalej - możesz stworzyć zmienną, której typem jest interfejs i podstawić pod nią każdy obiekt, który ten interfejs implementuje. Z poziomu tej zmiennej możesz jednak wywoływać jedynie metody, które zdefiniowane są w interfejsie, co jeszcze bardziej poprawia przejrzystość kodu i utrudnia jego przypadkowe rozwalenie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 19:30 |