PHP OOP - Interfaces
PHP - Wat is koppelvlakke?
Interfaces laat jou toe om te spesifiseer watter metodes 'n klas moet implementeer.
Interfaces maak dit maklik om 'n verskeidenheid verskillende klasse op dieselfde manier te gebruik. Wanneer een of meer klasse dieselfde koppelvlak gebruik, word daar na verwys as "polimorfisme".
Interfaces word verklaar met die interface
sleutelwoord:
Sintaksis
<?php
interface InterfaceName {
public function someMethod1();
public function someMethod2($name, $color);
public function
someMethod3() : string;
}
?>
PHP - Interfaces vs. Abstrakte Klasse
Interface is soortgelyk aan abstrakte klasse. Die verskil tussen koppelvlakke en abstrakte klasse is:
- Interfaces kan nie eienskappe hê nie, terwyl abstrakte klasse kan
- Alle koppelvlakmetodes moet publiek wees, terwyl abstrakte klasmetodes publiek of beskerm is
- Alle metodes in 'n koppelvlak is abstrak, dus kan hulle nie in kode geïmplementeer word nie en die abstrakte sleutelwoord is nie nodig nie
- Klasse kan 'n koppelvlak implementeer terwyl hulle terselfdertyd van 'n ander klas erf
PHP - Gebruik koppelvlakke
Om 'n koppelvlak te implementeer, moet 'n klas die implements
sleutelwoord gebruik.
'n Klas wat 'n koppelvlak implementeer, moet al die koppelvlak se metodes implementeer.
Voorbeeld
<?php
interface Animal {
public function makeSound();
}
class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}
$animal = new Cat();
$animal->makeSound();
?>
Kom ons sê uit die voorbeeld hierbo dat ons sagteware wil skryf wat 'n groep diere bestuur. Daar is aksies wat al die diere kan doen, maar elke dier doen dit op sy eie manier.
Deur koppelvlakke te gebruik, kan ons 'n kode skryf wat vir al die diere kan werk, selfs al tree elke dier anders op:
Voorbeeld
<?php
// Interface definition
interface Animal {
public
function makeSound();
}
// Class definitions
class Cat
implements Animal {
public function makeSound() {
echo " Meow ";
}
}
class Dog implements Animal {
public function makeSound()
{
echo " Bark ";
}
}
class Mouse implements Animal {
public function makeSound() {
echo " Squeak ";
}
}
// Create a list
of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new
Mouse();
$animals = array($cat, $dog, $mouse);
// Tell the animals
to make a sound
foreach($animals as $animal) {
$animal->makeSound();
}
?>
Voorbeeld Verduidelik
Kat, Hond en Muis is almal klasse wat die Diere-koppelvlak implementeer, wat beteken dat almal 'n geluid kan maak deur die makeSound()
metode te gebruik. As gevolg hiervan kan ons deur al die diere loop en vir hulle sê om 'n geluid te maak, selfs al weet ons nie watter tipe dier elkeen is nie.
Aangesien die koppelvlak nie vir die klasse vertel hoe om die metode te implementeer nie, kan elke dier 'n geluid op sy eie manier maak.