Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OOP]praktyczne wykorzystaie interfejsów
michat34
post
Post #1





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


witam ucze sie oop z kursu na wikipedii i obecnie jestem przy interfjsach. z tego co wiem mozna tam dawac (publiczne) prototypy metod czyli bez zadnych instrukcji. czy ktos mi moze wytłumaczyc jaki jest w takim razie ich sens? przykładowo, co mi daje:

  1. <?php
  2. interface Interface
  3. {
  4. public function Function1 ();
  5. public function Function2 ($a);
  6. }
  7.  
  8. class Class implements Interface
  9. {
  10. public function Function1 ()
  11. {
  12. // troche operacji
  13. }
  14. public function Function2 ($a)
  15. {
  16. //troche innych operacji
  17. }
  18. }


tak wiec skoro tak czy siak uniewazniam ta metode to jaki sens ma takie interfejsowanie? tylko dodatkowe kilka linijek kodu..
przynajmniej ja tak to widze, wiec prosze kogos bardziej doswiadczonego o wyprowadzenie mnie z bledu (IMG:style_emoticons/default/wink.gif) pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  1.  
  2. interface Ssaki {
  3.  
  4. public function sssie();
  5. public function gryzie();
  6. }
  7.  
  8. interface Gady {
  9.  
  10. public function gryzie();
  11. }


  1. class Kon implements Ssaki {
  2.  
  3. public function sssie() { echo 'sssie<br>'; }
  4. public function gryzie() { echo 'aaa<br>'; }
  5. }
  6.  
  7. class Waz implements Gady {
  8.  
  9. public function gryzie() { echo 'bbb<br>'; }
  10. }
  11.  
  12. class Zwierze {
  13.  
  14. public $zwierz;
  15.  
  16. public function dodajKonia(Ssaki $zwierze) {
  17.  
  18. $this->zwierz= $zwierze;
  19. }
  20.  
  21. public function dodajWeza(Gady $zwierze) {
  22.  
  23. $this->zwierz = $zwierze;
  24. }
  25. }
  26.  
  27. $zwierze = new Zwierze();
  28. $zwierze -> dodajKonia(new Waz()); // wywali błąd
  29.  
  30. //teraz od komentuj poniższy kod i usuń ten u góry
  31. /*
  32. $zwierze = new Zwierze();
  33. $zwierze -> dodajKonia(new Kon());
  34. $zwierze->zwierz -> sssie();
  35. $zwierze->zwierz -> gryzie();
  36.  
  37. $zwierze -> dodajWeza(new Waz());
  38. $zwierze->zwierz -> gryzie();
  39. */


Prosty przykład jak w praktyce, można wykorzystać interfejsy - jest późno więc jutro napiszę o co tu chodzi (IMG:style_emoticons/default/wink.gif)

Ten post edytował CuteOne 27.10.2012, 01:20:31
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Klasa dziedzicząca po interfejsie musi implementować jej wszystkie metody.
Go to the top of the page
+Quote Post
michat34
post
Post #4





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


@CutyOne ok (IMG:style_emoticons/default/wink.gif)
@bart4kk w kursie pisalo ze interfejsy w php sa taka troche alternatywa do wielodziedziczenia z innych jezykow. a w ten sposob wydaje mi sie ze nie sa taka, bo nie moge klasy rozszerzac o nowe własciwosci a jedynie wymuszac to ze ta klasa ma jakies własciwosci posiadac. czyli ja cos zle rozumiem czy interfejsy sluza glownie utrzymaniu porzadku w kodzie?
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Głownie tak (porządkowanie). Podejrzewam że kurs stary i nie bierze pod uwagę że od 5.4 są http://php.net/manual/en/language.oop5.traits.php
Go to the top of the page
+Quote Post
michat34
post
Post #6





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


@viking dzieki za link, poczytam. czy kurs stary, to zalezy jak patrzyc. ostatnia modyfikacja 2010 r., 2 lata to w swiecie komputerów dosyc sporo, ale i tak jest to jeden z nowszych kursow jakie znalazłem odnosnie php
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 16:57