Pratica sull'applicazione delle interfacce in OOP in PHP
Proviamo l'applicazione delle interfacce nella pratica. Risolviamo il problema delle figure della lezione precedente, ma utilizzando interfacce, non classi astratte.
Quindi, ora abbiamo l'interfaccia Figure:
<?php
interface Figure
{
public function getSquare();
public function getPerimeter();
}
?>
Scriviamo la classe Quadrate, che
implementerà i metodi di questa interfaccia:
<?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;
}
}
?>
Come funziona: se dimentichi di implementare
qualche metodo descritto nell'interfaccia,
PHP ci darà un errore fatale. Implementiamo
anche la classe Rectangle:
<?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);
}
}
?>
Crea la classe Disk,
che implementa l'interfaccia Figure.