Hva er Singleton-mønsteret?
Det matematiske konseptet til en singleton er et tallsett som bare inneholder ett enkelt tall. Programvareingeniører og programmerere har oversatt dette konseptet til noe som kalles et singleton-mønster, der et spesifikt sett med informasjon får tilgang til av forskjellige programmer bare en gang og alltid inneholder det samme settet med instruksjoner eller informasjon. Singleton-mønsteret brukes i programmeringsspråk som Java for å definere en global variabel, en informasjonsbit som brukes på tvers av et helt system som forblir det samme og trenger å bli definert en gang i stedet for mange ganger.
I de fleste programmeringsspråk krever det ytterligere informasjon om omgivelsene før et program kan kjøres. Det meste av informasjonen som er spesifikk for programmet er inneholdt i sin egen programkode; et program krever imidlertid ofte variabel informasjon om ting som versjonen av operativsystemet det kjører i, maskinvaren det kjøres på og annen spesifikk informasjon som ikke er unik for selve programmet. Vanligvis er denne informasjonen inneholdt i noe som kalles en klasse eller objekt, som er et uavhengig stykke programmeringskode som ofte finnes i en fil som er atskilt fra programmet, slik at den kan være tilgjengelig for mange forskjellige programmer samtidig.
Hvis et programmeringsspråk ikke bruker singleton-mønsteret, får hvert program som krever informasjon i et objekt tilgang til det ved å åpne objektet med et sett med parametere som spesifiserer hvilken informasjon i objektet programmet trenger. Derfor opprettes en annen forekomst av objektet i datamaskinens minne hver gang et annet program åpner objektet. Hver forekomst av objektet kan inneholde forskjellig informasjon, avhengig av de spesifikke behovene til hvert program som åpner det.
Når et programmeringsspråk som bruker singleton-mønsteret, for eksempel Java, begynner å kjøre et program, søker programmet først etter objektene det trenger informasjon fra. Hvis et objekt ikke allerede er åpent, åpner det objektet uten spesifikke parametere, og gjør all informasjonen i objektet tilgjengelig for alle programmer. Hvis objektet allerede er åpent, leser det ganske enkelt informasjonen i objektet og fortsetter. På denne måten er informasjonen i et objekt ved bruk av et singletonmønster alltid den samme, så det er ikke nødvendig å åpne mange forskjellige versjoner av objektet samtidig. Dette sparer plass i datamaskinens minne og kan også øke hastigheten fordi andre programmer kan få tilgang til informasjonen uten å måtte bruke tid på å lage en ny versjon av objektet.