PHP da OOP da interfeyslardan foydalanish bo‘yicha amaliy mashq
Keling, interfeyslarning qo‘llanilishini amalda sinab ko‘raylik. Oldingi darsdagi shakllar masalasini yechamiz, lekin mavhum sinflar emas, balki interfeyslardan foydalanamiz.
Shunday qilib, endi bizda Figure interfeysi mavjud:
<?php
interface Figure
{
public function getSquare();
public function getPerimeter();
}
?>
Keling, ushbu interfeys metodlarini amalga oshiradigan Quadrate
sinfini yozamiz:
<?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;
}
}
?>
Bu qanday ishlaydi: agar interfeysda tavsiflangan
har qanday metodni amalga oshirish unutilsa,
PHP bizga fatal xatolik chiqaradi. Keling
Rectangle sinfini ham amalga oshiramiz:
<?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 interfeysini amalga oshiradigan
Disk sinfini yarating.