Ontwerppatroon
Ontwerppatronen zijn herbruikbare oplossingen voor de ontwikkeling van software. Ze dienen als sjablonen die programmeurs kunnen gebruiken bij het maken van toepassingen. Ze zijn niet specifiek voor afzonderlijke programmeertalen, maar zijn in plaats daarvan best practices of heuristieken die in verschillende programmeeromgevingen kunnen worden toegepast.
Hoewel ontwerppatronen niet afhankelijk zijn van een programmeertaal, bevatten ze vaak objecten of klassen. Daarom worden ze meestal in verband gebracht met objectgeoriënteerd programmeren. Afzonderlijke patronen kunnen in drie verschillende categorieën worden ingedeeld: 1) creational patterns, 2) structural patterns en 3) behavioral patterns.
1. Creational patterns
Creational design patterns beschrijven manieren om objecten te maken met methoden die geschikt zijn voor verschillende situaties. Het patroon "Singleton" wordt bijvoorbeeld gebruikt om een basisklasse te maken die maar één instantie heeft. Een veelvoorkomend voorbeeld is een globale variabele die in de broncode van een programma is gedefinieerd. Een patroon "Object Pool" wordt gebruikt om een klasse te maken met een "pool" van objecten die indien nodig kunnen worden opgehaald, in plaats van opnieuw te worden gemaakt. Dit wordt vaak gebruikt voor caching.
2. Structural patterns
Structural design patterns definiëren de relaties tussen objecten. Het patroon "Private Class Data" wordt bijvoorbeeld gebruikt om de toegang tot een specifieke klasse te beperken. Dit kan ongewenste wijzigingen aan een object voorkomen. De klasse "Decorator" maakt het daarentegen mogelijk om tijdens runtime gedragingen en toestanden aan een object toe te voegen. Hierdoor hebben programmeurs de flexibiliteit om zo veel klassen als nodig aan een object toe te voegen. Een voorbeeld is een avatar in een videogame die in de loop van het spel wapens, bepantsering en voorwerpen verzamelt. De toepasselijk genoemde klasse "Decorator" zou een goed framework voor dit proces bieden.
3. Behavioral patterns
Behavioral design patterns beschrijven het gedrag van objecten, bijvoorbeeld de manier waarop ze met elkaar communiceren. Een voorbeeld is het patroon "Command", dat objecten beschrijft die opdrachten uitvoeren. Het patroon "Memento" legt de toestand van een object vast, zodat deze kan worden hersteld naar de opgeslagen toestand. Deze twee patronen kunnen samen worden gebruikt om bewerkingen voor ongedaan maken en opnieuw uitvoeren in een programma uit te voeren.
Samenvatting
Elk van de drie categorieën bevat verschillende andere ontwerppatronen die programmeurs kunnen gebruiken. Hoewel de patronen nuttige sjablonen bieden voor softwareontwikkelaars, krijgen ze soms kritiek omdat ze onnodig of niet specifiek genoeg zijn voor bepaalde toepassingen. Hoewel ontwerppatronen dus nuttige hulpmiddelen zijn bij het programmeren, hoeven ze niet exact te worden gevolgd om een goed ontworpen softwareprogramma te maken.
Test je kennis