Antipatroon

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Een antipatroon (Engels: anti-pattern) is een beschrijving van een vaak voorkomende, architectonische structuur die als een slecht idee beschouwd wordt. Antipatronen worden verzameld en bestudeerd in verschillende vakgebieden die met ontwerpen te maken hebben met de bedoeling ze te kunnen vermijden in de dagelijkse praktijk.

Het idee van een antipatroon is ontwikkeld door architect Christopher Alexander die een 'patroon taal' omschreef voor het plannen van steden en gebouwen in steden. Het Antipatroon is later in de informatica gebruikt als tegenhanger van het ontwerppatroon. Binnen de informatica bestaat een grote verzameling ontwerppatronen, ontwikkeld vanuit de eerste verzameling opgesteld door de Gang of Four. Gaandeweg ontstond ook het inzicht dat er bepaalde patronen zijn die niet een goed idee zijn, die wel steeds terugkomen. Deze patronen worden op een soortgelijke wijze verzameld als hun "positieve" tegenhangers.

Het gebruik van antipatronen[bewerken]

Antipatronen zijn nuttig omdat ze ons begrippen aan de hand doen waarmee we problemen kunnen herkennen en vermijden. Hiervoor bevat een ideale beschrijving de volgende elementen:

  • Een naam, om de communicatie te bevorderen
  • Het herkenbare probleem dat het antipatroon meent op te lossen
  • De kenmerken, om het antipatroon te herkennen
  • Situaties waarin het geen antipatroon is, om de relevantie te beoordelen
  • Een verklaring van de denkfout, om deze in de toekomst te vermijden
  • De gevolgen, om de ernst te beoordelen
  • Betere oplossingen, om het te vermijden of repareren

Onderkende antipatronen[bewerken]

Net als ontwerppatronen worden antipatronen meestal ingedeeld naar categorie.

Antipatronen in automatisering[bewerken]

Ontwerpantipatronen[bewerken]

  • Abstractieinversie: Een raakvlak (facet) exporteert benodigde geïmplementeerde functies niet, dus de gebruiker bouwt ze inefficiënt opnieuw boven de geëxponeerde functies. Niet: Bouw van eenvoudige functies op basis van complexe functies, dat vaak wenselijk is.
  • De God klasse: Een klasse die te veel weet en te veel doet, er is geen sprake meer van een klasse die één taak uitvoert maar hij doet allerlei verschillende taken tegelijk. Dit zorgt vaak voor veel regels code en een ondoorzichtige structuur.

Programmeerantipatronen[bewerken]

  • Spaghetticode - code waar de logische paden net zo onnavolgbaar zijn als een bord spaghetti.
Bronnen, noten en/of referenties
  • Alexander, Christopher, A Pattern Language, Oxford: Oxford University Press, 1977