ინტერფეისების მეთოდების პარამეტრები PHP-ის OOP-ში
ინტერფეისებში მეთოდების აღწერისას აუცილებელია მივუთითოთ არა მხოლოდ თავად მეთოდების სახელები, არამედ მათ მიერ მიღებული პარამეტრებიც.
მოდით შევხედოთ მაგალითს. ვთქვათ, გვაქვს ინტერფეისი
iMath, რომელიც აღწერს კლასს
მათემატიკური ოპერაციებისთვის - შეკრება, გამოკლება,
გამრავლება და გაყოფა. ვთქვათ, ეს ინტერფეისი
ასე გამოიყურება:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
ამჟამად ჩვენი ინტერფეისის მეთოდები არ იღებენ არცერთ პარამეტრს. და სინამდვილეში კლასის მეთოდები, რომელიც ამ ინტერფეისს რეალიზებს, ასევე არ უნდა იღებდნენ პარამეტრებს, წინააღმდეგ შემთხვევაში იქნება შეცდომა.
მოდით მივუთითოთ მეთოდების პარამეტრები ჩვენს ინტერფეისში:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
ახლა დავწეროთ ჩვენი ინტერფეისის რეალიზაცია:
<?php
class Math implements iMath
{
public function sum($a, $b)
{
return $a + $b;
}
public function subtract($a, $b)
{
return $a - $b;
}
public function multiply($a, $b)
{
return $a * $b;
}
public function divide($a, $b)
{
return $a / $b;
}
}
?>
თუ ჩვენს კლასში სხვა რაოდენობის პარამეტრების მითითებას შევეცდებით - ეს ჩვენ უბრალოდ არ გამოგვივა: PHP გამოიტანს შეცდომას. ამით ჩვენ ვერ შევძლებთ არც შემთხვევით დავივიწყოთ რაიმე პარამეტრი და არც შემთხვევით დავამატოთ ზედმეტი.
ვთქვათ, გვაქვს მოცემული ინტერფეისი iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
გააკეთეთ კლასი User, რომელიც
რეალიზებს ამ ინტერფეისს.