Rajapintamenetelmien parametrit OOP:ssa PHP:ssä
Rajapintamenetelmiä kuvaessa on tarpeen määrittää paitsi itse menetelmien nimet, myös niiden vastaanottamat parametrit.
Katsotaanpa esimerkkiä. Oletetaan, että meillä on
rajapinta iMath, joka kuvaa luokan
matemaattisille operaatioille yhteenlasku, vähennyslasku,
kerto- ja jakolasku. Olkoon tämä rajapinta
seuraavanlainen:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Tällä hetkellä rajapintamme menetelmät eivät vastaanota yhtään parametreja. Ja itse asiassa luokan menetelmien, jotka toteuttavat tämän rajapinnan, ei myöskään pitäisi vastaanottaa parametreja, muuten tulee virhe.
Määritetään nyt menetelmiemme parametrit rajapinnassamme:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Kirjoitetaan nyt rajapintamme toteutus:
<?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;
}
}
?>
Jos yritämme luokassamme asettaa eri määrän parametreja - se ei yksinkertaisesti onnistu: PHP antaa virheen. Näin emme voi vahingossa unohtaa jotain parametria, emmekä vahingossa lisää ylimääräistä.
Oletetaan, että meillä on tällainen rajapinta iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Tee luokka User, joka
toteuttaa tämän rajapinnan.