Klasy abstrakcyjne a wzorce projektowe
Założenie: Zrozumieć, jak działają klasy abstrakcyjne w PHP i ich zastosowanie we wzorcach projektowych, takich jak Template Method i Factory Method.
Krok po kroku:
- Definicja klasy abstrakcyjnej: Klasa abstrakcyjna definiuje interfejs dla podklas, ale nie może być instancjonowana bezpośrednio. Zawiera ona metody abstrakcyjne, które muszą być zaimplementowane przez klasy potomne.
- Przykład klasy abstrakcyjnej:
- Implementacja klasy potomnej: Klasa potomna dziedziczy po klasie abstrakcyjnej i implementuje wszystkie metody abstrakcyjne.
- Wyjaśnienie kodu: Powyższy kod definiuje klasę abstrakcyjną `Shape` z abstrakcyjną metodą `getArea()`. Klasy `Circle` i `Square` dziedziczą po `Shape` i implementują `getArea()` w sposób specyficzny dla swojego kształtu. Możemy tworzyć instancje `Circle` i `Square`, ale nie `Shape`.
radius = $radius;
}
public function getArea() {
return pi() * $this->radius * $this->radius;
}
}
class Square extends Shape {
private $side;
public function __construct($side) {
$this->side = $side;
}
public function getArea() {
return $this->side * $this->side;
}
}
$circle = new Circle(5);
$square = new Square(4);
echo "Pole koła: " . $circle->getArea() . "
";
echo "Pole kwadratu: " . $square->getArea();
?>
Ten przykład pokazuje podstawowe zastosowanie klas abstrakcyjnych. Zachęcamy do dalszego zgłębiania tematu i poznawania zaawansowanych wzorców projektowych, w których klasy abstrakcyjne odgrywają kluczową rolę.