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);
}
}
?>
Figure интерфейсин ишке ашырган Disk классын жасаңыз.