Singleton

Wat is het?

Het Singleton-patroon is een ontwerpprincipe uit OOP dat ervoor zorgt dat er van een bepaalde klasse hooguit één enkele instantie bestaat en dat die instantie vanuit de hele applicatie bereikbaar is. In zowel 3D-toepassingen (bijv. scene- of resource-managers, renderer of physics world) als webprojecten (bijv. database- of authenticatieservices) gebruik je een singleton om gedeelde resources en coördinatiepunt centraal te beheren. Implementaties kunnen static members, modules/closures of framework-specifieke mechanismen (zoals Unity's static instance of ES modules in frontend en Node.js) gebruiken; houd rekening met nadelen zoals verborgen afhankelijkheden, moeilijkheden bij testen en lifecycle-management en concurrency-problemen op servers of binnen meerdere threads/workers.

Praktisch voorbeeld

In een 3D-project kun je een Renderer- of AssetLoader-singleton hebben: één centraal object maakt en beheert de GPU-context, texture caches en laadqueues zodat alle 3D-objecten dezelfde renderer en resources hergebruiken. In Unity zie je vaak een GameManager met een static Instance-veld dat de globale spelstatus en instellingen bewaakt; in native engines kan dat de PhysicsWorld of SceneManager zijn. Op het web kun je hetzelfde patroon toepassen voor een database- of API-client in Node.js, of voor een AuthService in een frontend-app (bijv. één instantie die tokens beheert). Een praktische implementatie op het web gebruikt vaak ES modules als singleton-implementatie, terwijl 3D-engines soms een static field of engine-singleton bieden; let op cleanup bij hot-reload en bij tests om geheugenlekken te voorkomen.

Test je kennis

Welke uitspraak beschrijft het Singleton-patroon het beste in de context van zowel 3D- als webprojecten?

Vraag het aan Lex
Lex kent de context van deze term en helpt je sneller met gerichte uitleg, voorbeelden en extra context.
Tip: Lex antwoordt kort in de widget. Voor meer detail, ga naar full screen modus.

Leer onze taal

Leer deze termen van echte professionals en verdiep je skills bij KdG MCT.

Studeren bij KdG