Praktijk op toepassing van interfaces in OOP in PHP

Laten we de toepassing van interfaces in de praktijk proberen. Laten we de taak over figuren uit de vorige les oplossen, maar nu gebruikmakend van interfaces, in plaats van abstracte klassen.

Dus, nu hebben we de interface Figure gekregen:

Figure.php<?php
  interface Figure
  {
    public function getSquare();
    public function getPerimeter();
  }
?>

Laten we de klasse Quadrate schrijven, die de methodes van deze interface zal implementeren:

Quadrate.php<?php
  class Quadrate implements Figure
  {
    private $a;
    
    public function __construct($a)
    {
      $this->a = $a;
    }
    
    public function getSquare()
    {
      return $this->a * $this->a;
    }
    
    public function getPerimeter()
    {
      return 4 * $this->a;
    }
  }
?>

Hoe dit werkt: als we vergeten een methode te implementeren, die in de interface is beschreven, zal PHP een fatale fout geven. Laten we ook de klasse Rectangle implementeren:

Rectangle.php<?php
  class Rectangle implements Figure
  {
    private $a;
    private $b;
    
    public function __construct($a, $b)
    {
      $this->a = $a;
      $this->b = $b;
    }
    
    public function getSquare()
    {
      return $this->a * $this->b;
    }
    
    public function getPerimeter()
    {
      return 2 * ($this->a + $this->b);
    }
  }
?>
Задание 1

Maak de klasse Disk, die de interface Figure implementeert.