Interface

Uit Inf20
Naar navigatie springen Naar zoeken springen

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 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,

Basis voor evolutie en variatie

Interfaces in de ICT vormen de basis voor evolutie en variatie. Dankzij het slim gebruiken van interfaces kan de technologie en het gebruik daarvan zich zo snel ontwikkelen.

Voorbeeld: (i) je kunt je bestaande software en gegevens op een nieuwe computer installeren - zonder dat je deze software hoeft aan te passen; (ii) je kunt nieuwe software op je bestaande computer installeren - zonder dat je deze computer hoeft aan te passen.
Voorbeeld: je kunt een nieuwe schijf aan je computer koppelen, of een bedraad netwerk vervangen door een draadloos netwerk - zonder dat je de software (toepassingen) hoeft aan te passen. (hooguit moet je in de systeemsoftware een configuratie aanpassen, of een driver-programma toevoegen).

Zie ook: [3-lagen model]

Standaardisatie

Interfaces zijn vaak gestandaardiseerd. Dit is van belang als er meerdere aanbieders zijn van hetzelfde interface.

  • voorkom lock-in

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 het geval van een gestandaardiseerd interface kun je eenvoudig overstappen op een implementatie die beter past wat kwaliteit en efficiëntie betreft.