Interface
Interface
Een interface is een vast omlijnd contactpunt tussen de aanbieder van een dienst of product, en de gebruiker daarvan.
Een interface vormt een dubbelzijdige abstractie:
- de implementatie hoeft alleen aan het interface te voldoen. Daarmee abstraheer je van de details van het gebruik.
- voor het gebruik is alleen het interface van belang. Daarmee abstraheer je van de details van de implementatie.
Interfaces zijn vaak gestandaardiseerd. Dit is van belang als er meerdere aanbieders zijn van hetzelfde interface.
Interfaces komen ook buiten de ICT voor: denk bijvoorbeeld aan het stopcontact, of het gebruikersinterface van een auto.
Binnen de ICT komen interfaces op alle niveaus voor, van hardware-interfaces als USB, via procedures en functies als interface, tot gebruikersinterfaces van operating systems en toepassingen. Als gebruiker heb je met een zeer groot aantal interfaces te maken. Als programmeur moet je vaak zelf interfaces definiëren.
Voorbeelden:
- hardware-interfaces (USB,
Wat moet je weten over interfaces?
Definitie van het interface
Definieer een interface zo dat
- het een goede scheiding vormt tussen gebruik en implementatie (separation of concerns). Het interface moet geen implementatie-details later doorschemeren (implementation bias).
- het gebruik gemakkelijk is, met zo min mogelijk aanleiding tot foutief gebruik.
- dit stabiel kan blijven, bij veranderingen in de implementatie die te voorzien zijn.
Gebruik
Houd je aan de regels van het gedocumenteerde interface. Soms is het mogelijk om ongedocumenteerde eigenschappen te gebruiken; dit kan een werkende oplossing opleveren. Maar er is geen enkele garantie dat dit in de toekomst ook het geval zal zijn.
Voorkom lock-in
Als er meerdere aanbieders zijn van een bepaald interface, biedt een aanbieder soms "extra's", boven op het standaard-interface. Het gebruik van deze extra's, hoe aanlokkelijk ook, maakt het lastiger om over te stappen naar een andere aanbieder: er is dan sprake van vendor lock-in.
Implementatie
De implementatie is de manier waarop het product of de dienst gemaakt is.
- Voor het gebruik is in eerste alleen het interface van belang, niet de implementatie.
- Implementaties kunnen verschillen met betrekking tot hun kwaliteit en efficiëntie.
In de wereld van