Амалияи интерфейсҳо дар ООП дар PHP
Биёед татбиқи интерфейсҳоро дар амал озмоем. Масъалаи шаклҳоро аз дарси гузашта ҳал мекунем, аммо акнун бо истифодаи интерфейсҳо, на синфҳои абстрактӣ.
Пас, акнун мо интерфейси Figure-ро дорем:
<?php
interface Figure
{
public function getSquare();
public function getPerimeter();
}
?>
Биёед синфи Quadrate-ро нависем, ки методҳои ин интерфейсро амалӣ мекунад:
<?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;
}
}
?>
Чӣ тавр кор мекунад: агар ягон методро, ки дар интерфейс тавсиф шудааст, амалӣ кардан фаромӯш кунем, PHP ба мо хатогии фаталӣ медиҳад. Биёед инчунин синфи 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);
}
}
?>
Синфи Disk-ро созед, ки интерфейси Figure-ро амалӣ мекунад.