Παράμετροι σε μεθόδους διεπαφών στο OOP στην PHP
Κατά την περιγραφή μεθόδων σε διεπαφές είναι απαραίτητο να προσδιορίζονται όχι μόνο τα ονόματα των ίδιων των μεθόδων, αλλά και οι παράμετροι που δέχονται.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε
μια διεπαφή 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, που θα
υλοποιεί αυτήν τη διεπαφή.