• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Interfejsy PHP OOP

Cloud VPS
0 głosów
303 wizyt
pytanie zadane 26 maja 2017 w PHP przez Piotrek Jabłoński Początkujący (250 p.)
Siema mam problem ze zrozumieniem po co sa te interfejsy w PHP

Ogladajac filmiki zauwazyłem ze to tylko zbior tj. metod które ma dana klasa, chodzi tu o to że przy dlugiej ilosci kodu widze jakie metody sa w danej klasie? bo w interfejsie mam wypisane jedna pod druga czy jak? Wytlumaczy mi ktos to prosze?

1 odpowiedź

+1 głos
odpowiedź 26 maja 2017 przez Boshi VIP (100,240 p.)
edycja 27 maja 2017 przez Boshi
ehh.. nie, nie o to chodzi. Interfejsy są to takie lekko mówiąc, wymuszacze implementacyjne. Nie ważne są szczegóły danych metod, a tylko to aby były uszczegółowione w klasie która implementuje dany interfejs, wiąże się to z również z tym, że taka klasa przyjmuje typ danego interfejsu..

Przez interfejsy łączy się całość systemów, łatwo wyprowadzić polimorfizm... np

przyjmujesz jako argument typ interfejsu a potem możesz podać dowolny obiekt  klasy która go implementuje i wywołać jego metodę.. wynik zawsze będzie równoznaczny z odpaleniem danego obiektu.
komentarz 27 maja 2017 przez CzikaCarry Szeryf (75,340 p.)
@autor tematu

Dla łatwiejszego zrozumienia, jeśli programowałeś kiedyś w C# i korzystałeś z wzorca projektowego MVVM, to przy pomocy interfejsów możesz stworzyć service'y w PHP (nie tyle stworzyć, co umożliwić ich stworzenie). Oczywiście interfejsy nie służą tylko do tego. Myślę, że @Boshi wytłumaczył to wystarczająco dobrze :)
komentarz 27 maja 2017 przez Piotrek Jabłoński Początkujący (250 p.)

Zrobiłbyś jakiś przykład mały dla tego ??

przyjmujesz jako argument typ interfejsu a potem możesz podać dowolny obiekt  klasy która go implementuje i wywołać jego metodę.. wynik zawsze będzie równoznaczny z odpaleniem danego obiektu.

komentarz 27 maja 2017 przez Boshi VIP (100,240 p.)
namespace  shape;


interface Shape
{
  public function area();
}




namespace  shape;


class Rectangle implements Shape
{
  private $a;
  private $b;

   
    public function __construct($a, $b)
    {
        $this->a = $a;
        $this->b = $b;
    }


    public function area()
    {
        return $this->a*$this->b;
    }
}



class Square implements Shape
{

    private $a;


    public function __construct($a)
    {
        $this->a = $a;
    }


    public function area()
    {
        return $this->a* $this->a;
    }



}

class CalculateShape
{
    public function  getResultShapeArea(Shape $shape)
    {
        return $shape->area();
    }

}

$shape=new \shape\CalculateShape;
echo $shape->getResultShapeArea(new \shape\Square(5));
echo $shape->getResultShapeArea(new \shape\Rectangle(1,10));

 

Podobne pytania

0 głosów
3 odpowiedzi 2,124 wizyt
pytanie zadane 3 grudnia 2017 w PHP przez Krzysio4224 Obywatel (1,690 p.)
+1 głos
1 odpowiedź 254 wizyt
pytanie zadane 11 lutego 2022 w PHP przez ZnaQu Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 135 wizyt
pytanie zadane 26 kwietnia 2020 w PHP przez creend Gaduła (4,700 p.)

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,908 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...