Wat is het Singleton-patroon?
Het wiskundige concept van een singleton is een nummerreeks die slechts één enkel nummer bevat. Software-ingenieurs en programmeurs hebben dit concept vertaald in iets dat een singleton-patroon wordt genoemd, waarin een specifieke set informatie slechts eenmaal door verschillende programma's wordt benaderd en altijd dezelfde set instructies of informatie bevat. Het singleton-patroon wordt in programmeertalen zoals Java gebruikt om een globale variabele te definiëren, een stuk informatie dat in een heel systeem wordt gebruikt en hetzelfde blijft en slechts één keer hoeft te worden gedefinieerd in plaats van vele keren.
Voordat een programma kan worden uitgevoerd, vereist het in de meeste programmeertalen aanvullende informatie over de omgeving. De meeste informatie die specifiek is voor het programma, bevindt zich in de eigen programmacode; een programma vereist echter vaak ook variabele informatie over dingen zoals de versie van het besturingssysteem waarin het wordt uitgevoerd, de hardware waarop het wordt uitgevoerd en andere specifieke informatie die niet uniek is voor het programma zelf. Gewoonlijk bevindt deze informatie zich in iets dat een klasse of object wordt genoemd, wat een onafhankelijk stuk programmeercode is, vaak in een bestand dat losstaat van het programma, zodat het tegelijkertijd voor veel verschillende programma's beschikbaar kan zijn.
Als een programmeertaal het singleton-patroon niet gebruikt, heeft elk programma dat informatie in een object nodig heeft, toegang tot het door het object te openen met een set parameters die specificeren welke informatie in het object het programma nodig heeft. Daarom wordt elke keer dat een ander programma het object opent, een ander exemplaar van het object in het geheugen van de computer gemaakt. Elke instantie van het object kan verschillende informatie bevatten, afhankelijk van de specifieke behoeften van elk programma dat het opent.
Wanneer een programmeertaal die het singleton-patroon gebruikt, zoals Java, een programma begint uit te voeren, zoekt het programma eerst naar de objecten waarvan informatie nodig is. Als een object nog niet is geopend, wordt het object geopend zonder specifieke parameters, waardoor alle informatie in het object beschikbaar is voor alle programma's. Als het object al geopend is, leest het eenvoudigweg de informatie in het object en gaat het verder. Op deze manier is de informatie in een object met een singleton-patroon altijd hetzelfde, dus het is niet nodig om veel verschillende versies van het object tegelijkertijd te openen. Dit bespaart ruimte in het geheugen van de computer en kan ook de snelheid verhogen omdat andere programma's toegang hebben tot de informatie zonder tijd te besteden aan het maken van een nieuwe versie van het object.