Praksis i anvendelse af grænseflader i OOP i PHP
Lad os prøve anvendelsen af grænseflader i praksis. Lad os løse opgaven om figurer fra den forrige lektion, men nu ved at bruge grænseflader i stedet for abstrakte klasser.
Så nu har vi fået grænsefladen Figure:
<?php
interface Figure
{
public function getSquare();
public function getPerimeter();
}
?>
Lad os skrive klassen Quadrate, som
vil implementere metoderne for denne grænseflade:
<?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;
}
}
?>
Hvordan det virker: hvis du glemmer at implementere
en hvilken som helst metode, beskrevet i grænsefladen,
vil PHP give os en fatal fejl. Lad os
implementere klassen Rectangle også:
<?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);
}
}
?>
Lav klassen Disk,
der implementerer grænsefladen Figure.