Vad är Singleton-mönstret?
Det matematiska konceptet för en singleton är en taluppsättning som endast innehåller ett enda nummer. Programvaruingenjörer och programmerare har översatt det här konceptet till något som kallas ett singletonmönster, där en specifik uppsättning information åtkomst till olika program endast en gång och alltid innehåller samma uppsättning instruktioner eller information. Singletonmönstret används i programmeringsspråk som Java för att definiera en global variabel, en information som används över ett helt system som förblir detsamma och behöver definieras endast en gång istället för många gånger.
I de flesta programmeringsspråk kräver det ytterligare information om miljön innan ett program kan köras. Merparten av den information som är specifik för programmet finns i dess egen programkod; ett program kräver emellertid ofta också variabel information om saker som versionen av operativsystemet där det körs, hårdvaran det körs på och annan specifik information som inte är unik för själva programmet. Vanligtvis finns denna information i något som kallas en klass eller objekt, som är en oberoende del av programmeringskoden som ofta finns i en fil som är separat från programmet så att den kan vara tillgänglig för många olika program samtidigt.
Om ett programmeringsspråk inte använder singletonmönstret, kommer varje program som kräver information som finns i ett objekt åtkomst till det genom att öppna objektet med en uppsättning parametrar som anger vilken information i objektet programmet behöver. Därför skapas en annan instans av objektet i datorns minne varje gång ett annat program öppnar objektet. Varje instans av objektet kan innehålla olika information, beroende på de specifika behoven för varje program som öppnar det.
När ett programmeringsspråk som använder singletonmönstret, som Java, börjar köra ett program, söker programmet först efter de objekt som det behöver information från. Om ett objekt inte redan är öppet öppnar det objektet utan några specifika parametrar, vilket gör all information i objektet tillgänglig för alla program. Om objektet redan är öppet läser det helt enkelt informationen i objektet och fortsätter. På detta sätt är informationen i ett objekt som använder ett singletonmönster alltid densamma, så det finns inget behov av att öppna många olika versioner av objektet samtidigt. Detta sparar utrymme i datorns minne och kan också öka hastigheten eftersom andra program kan komma åt informationen utan att behöva spendera tid på att skapa en ny version av objektet.