Hallo,

Ik heb van jullie geleerd dat het goed is om interfaces te gebruiken. Nu heb ik een puzzeltje en ik weet niet hoe ik dit moet aanpakken.

Laten we het even heel erg simpel houden om het idee helder te krijgen.

Stel ik wil bijv. 2 classes maken waarin ik data kan opslaan. Class 1 (Simple) heeft alleen een get() method en class 2 (Full) heeft een set() method en gebruikt de get() method van class 1.

Een voorbeeldje:

<?php

interface SimpleInterface {

public function get();

}

class Simple implements SimpleInterface {

public function get() {

}

}

interface FullInterface {

public function set();

}

class Full extends Simple implements FullInterface {

public function set() {

}

}

?>
De Simple class heeft nu dus een get() method, en de Full class heeft een get() en een set() method.

Wat ik me nu afvraag is het volgende. Stel ik wil nu dat een class method als argument een class krijgt die voldoet aan de FullInterface:

<?php

public function editData(FullInterface $data) {

}

?>
Wat ik dus eigenlijk hiermee wil zeggen is dat het $data argument een object is met een get() en een set() method. Echter, in de FullInterface is alleen de set() method opgenomen. Hoe moet ik die get() method onderdeel maken van de FullInterface? Moet ik die er gewoon handmatig bijzetten, of kan ik op de een of andere manier de SimpleInterface koppelen aan de FullInterface?
Ah, thanks! Je kunt een interface dus extenden!
Precies de oplossing die ik nodig had :)

Reageren