Terug naar begrippenlijst

Strategy pattern

Soms wil je dat een object zich anders gedraagt, afhankelijk van de situatie. Bijvoorbeeld een betaalmethode, een sorteeralgoritme of een manier van inloggen. In plaats van eindeloos if-statements te stapelen, kun je dat gedrag slim loskoppelen van de rest van je code. Daar komt het strategy pattern in beeld. Het strategy pattern is een ontwerppatroon (design pattern) dat je helpt om algoritmes of logica uitwisselbaar te maken. Je definieert een set strategieën, stopt ze netjes in aparte objecten en kiest op runtime welke je toepast. Zo blijft je code overzichtelijk, testbaar en flexibel.

Geschreven door Thijn de Haas

Zwaaiende emoji

Thijn Lead developer

Meer over Thijn

Inhoudsopgave

Vaste structuur, flexibel gedrag

De kern van het strategy pattern ziet er als volgt uit: je hebt een ‘context’ (bijvoorbeeld een betaalsysteem), en die maakt gebruik van een ‘strategie’ (zoals iDEAL, creditcard of PayPal). Alle strategieën delen dezelfde interface, zodat je ze kunt uitwisselen zonder aanpassingen in de rest van je code.

Stel je voor: je webshop heeft meerdere verzendmethodes. Met het Strategy pattern hoef je niet telkens een nieuwe ‘if’ toe te voegen, maar kies je simpelweg de juiste verzendstrategie en geef je die mee aan je systeem. Plug-and-play, maar dan met logica.

Waarom moeilijk doen als het flexibeler kan?

Onderhoudbare code is goud waard. Zeker in grotere systemen of software die moet meegroeien met je bedrijf, voorkomt het strategy pattern dat alles in elkaar vastroest. Je voegt een nieuwe strategie toe zonder bestaande code aan te raken en dat betekent minder bugs en meer overzicht.

Bovendien maak je je systeem beter testbaar: elke strategie kun je los testen zonder bijwerkingen van andere delen in de code.

Even opladen met een metafoor

Zie het strategy pattern als een oplader met verwisselbare stekkers. Je toestel blijft hetzelfde, maar afhankelijk van waar je bent (thuis, op kantoor, in het buitenland) kies je de juiste stekker. Alles werkt, zonder dat je je hele oplader hoeft om te bouwen.

Zo werkt het ook in code: je schrijft één systeem, en wisselt de ‘stekker’ (strategie) afhankelijk van wat nodig is.

Veelgestelde vragen

Ze zijn verwant. Het strategy pattern maakt gebruik van polymorfisme om verschillende strategie-objecten op dezelfde manier aan te spreken.

Als je meerdere varianten van een algoritme of gedrag hebt en je die dynamisch wilt kunnen uitwisselen.

Zeker niet. Ook in kleinere projecten kan het voor rust en overzicht zorgen, vooral als gedrag vaker verandert.

Een switch werkt prima voor simpele keuzes. Maar als je code groeit, zorgt het strategy pattern voor schonere scheiding van verantwoordelijkheden.

Thijn de Haas Lead developer

Meer over Thijn

Mijn programmeeravontuur begon rond mijn twaalfde, toen ik ontdekte dat je met code vrijwel alles kunt maken. Ik begon met het bouwen van kleine projecten en startte al snel mijn eigen hostingdienst, wat me veel leerde over maatwerkcode, serverbeheer en het koppelen aan websites. Deze kennis pas ik nu dagelijks toe in mijn werk aan websites en applicaties.

Als student Applicatieontwikkelaar liep ik drie stages bij Wux, waarbij ik tijdens de eerste stage mijn eerste bedrijf startte, deels op advies van Bo. Deze ervaringen vormden het fundament van mijn rol als lead developer en mede-eigenaar van Wux. Met een constante interesse in nieuwe technieken en het meedenken naar de beste oplossingen, zet ik mijn expertise dagelijks in om complexe vraagstukken op te lossen samen met mijn team.

Twee mannen in overleg tijdens het werk achter hun computerschermen
Zwaaiende emoji

Thijn Back-end developer

Op zoek naar slimme software-oplossingen die jouw bedrijf efficiënter maken?

Het team van Wux ontwikkelt maatwerk software die aansluit bij jouw behoeften. Neem vandaag nog contact op en ontdek hoe we jouw bedrijf elke dag succesvoller kunnen maken.

Meer over software