Gebruik van interfaces

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Raoul -

- Raoul -

17/07/2012 21:15:12
Quote Anchor link
Beste PHP'ers,

Ik ben van plan om mijn MVC wat uit te breiden met interfaces. Ik snap wel wat het doet en waarom je het gebruikt, maar in welk geval gebruik je zo'n interface?

Ik heb op dit moment een Controller, View, Model, Config en een Session class.

Groeten
 
PHP hulp

PHP hulp

28/11/2024 18:43:34
 
Wouter J

Wouter J

17/07/2012 23:11:24
Quote Anchor link
Elk object behoort direct of indirect aan een interface vast te zitten. Een interface dient als overkoepelende factor die objecten aan elkaar linkt.

Met een interface kan je snel controles uitvoeren. Ipv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Dog beast = new Dog();
Cat beast1 = new Cat();

Kun je veel beter controleren op de overkoepelende interface:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Animal beast = new Dog();
Animal beast1 = new Cat();

(code voorbeelden zijn in JAVA)

Als laatst dien je in een interface die methods vast te stellen die je zeker nodig hebt om het te gebruiken.
 
Erwin H

Erwin H

17/07/2012 23:15:31
Quote Anchor link
Het belangrijkste van interfaces in mijn ogen is dat je daarmee bepaalde afhankelijkheden tussen classes veilig kunt leggen. Als een class een bepaalde interface implementeert dan weet je namelijk dat bepaalde methodes in die class aanwezig zijn. Je weet niet wat het precies doet of hoe, maar je weet wel dat je die methodes dus veilig kunt aanroepen (en normaal gesproken natuurlijk ook dat de juiste acties dan worden uitgevoerd).

Praktisch gezien, op elk moment dat de ene class een andere class nodig heeft moet je zorgen dat alle methodes die aangeroepen moeten worden in de interface worden gedefinieerd. De class implementeert het, maar via de interface wordt al bepaald welke methodes.
zorg dan ook dat je als je objecten meegeeft in methodes, dat je dan type hinting gebruikt op de interface. Dus je geeft de interface mee als type voor de parameter van de functie, niet een class. Daarmee maak je het voor jezelf ook mogelijk dat je later een class eenvoudig kunt vervangen door een andere, zonder dat je code hoeft aan te passen in al bestaande classes.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.