Interfejsy a refaktoryzacja
Założenie: Pokażemy, jak interfejsy w PHP ułatwiają refaktoryzację kodu poprzez stworzenie przykładu z dwoma klasami implementującymi ten sam interfejs.
Krok po kroku:
- Definicja interfejsu: Tworzymy interfejs
Drawable
z metodądraw()
. - Implementacja interfejsu w klasie Circle: Tworzymy klasę
Circle
implementującą interfejsDrawable
. - Implementacja interfejsu w klasie Square: Tworzymy klasę
Square
również implementującą interfejsDrawable
. - Użycie interfejsu: Używamy interfejsu
Drawable
do rysowania figur.
interface Drawable {
public function draw();
}
Ten kod definiuje interfejs Drawable
, który deklaruje metodę draw()
. Klasy implementujące ten interfejs muszą zaimplementować tę metodę.
class Circle implements Drawable {
public function draw() {
echo "Rysuję koło
";
}
}
Klasa Circle
implementuje metodę draw()
, która wypisuje komunikat “Rysuję koło”.
class Square implements Drawable {
public function draw() {
echo "Rysuję kwadrat
";
}
}
Podobnie jak Circle
, klasa Square
implementuje metodę draw()
, ale z inną implementacją.
$circle = new Circle();
$square = new Square();
$circle->draw();
$square->draw();
Ten kod tworzy obiekty Circle
i Square
i wywołuje metodę draw()
dla każdego z nich. Dzięki interfejsowi, kod ten działa niezależnie od konkretnej implementacji.
Ten przykład pokazuje, jak interfejsy pozwalają na zmianę implementacji (np. dodanie nowych figur) bez konieczności modyfikacji kodu, który używa interfejsu. Zachęcamy do dalszego zgłębiania tematu interfejsów i abstrakcji w PHP!