Het adapter pattern is een ontwerppatroon dat een stuk code in een dun laagje verpakt, zodat het past waar het anders niet zou passen. De twee kanten verwachten een andere vorm, en in plaats van er een aan te passen, zet je er een kleine vertaler tussen. Voor de rest van het systeem lijkt het ingepakte ding nu precies op wat het verwachtte.

Een reisstekker is hiervan het alledaagse voorbeeld. Je laptoplader heeft Britse pinnen, het stopcontact in het hotel in Spanje is een Europees model, en geen van beide gaat voor jou veranderen. De adapter zit ertussen en laat ze samenwerken, zonder iets om te bouwen. In code doet hij hetzelfde: hij neemt een betaalprovider, een oude rapportagetool of een nieuwe verzenddienst en presenteert die via de interface die jouw software al kent.

Omdat hij steunt op een stabiele buitenkant en de omzetting eronder verbergt, is de adapter een mooi voorbeeld van abstractie in actie. Wissel je de provider later, dan raak je alleen de adapter aan en niet de tientallen plekken die hem aanroepen. Stel dat een klant op Mollie zit voor betalingen en Stripe erbij wil voor internationale kaarten. Zonder adapter zou elk afrekenscherm moeten weten met welke provider het praat. Met een adapter worden beide providers zo ingepakt dat ze er identiek uitzien, en blijft de afreken-code precies hetzelfde. Datzelfde trucje werkt als een oud intern systeem XML spreekt en de rest van de app JSON verwacht. De adapter vertaalt stilletjes tussen de twee, en geen van beide kanten hoeft de taal van de ander te leren.

Bij TopDevs grijpen we naar het adapter pattern zodra een klant een externe dienst of een oud systeem moet koppelen, zodat de integratie netjes op één plek blijft in plaats van door de hele codebase te lekken.