Mis on Singletoni muster?

Singli matemaatiline mõiste on arvukomplekt, mis sisaldab ainult ühte üksikut arvu. Tarkvarainsenerid ja programmeerijad on selle kontseptsiooni tõlkinud millekski, mida nimetatakse üksikmustriks, mille puhul erinevad programmid pääsevad konkreetsele teabekomplektile juurde ainult üks kord ja see sisaldab alati samu juhiseid või teavet. Singleton mustrit kasutatakse programmeerimiskeeltes, nagu Java, globaalse muutuja määratlemiseks, kogu süsteemis kasutatava teabe osa, mis jääb samaks ja mida tuleb defineerida ainult üks kord, mitte mitu korda.

Enamikus programmeerimiskeeltes nõuab programm enne käivitamist täiendavat teavet selle keskkonna kohta. Suurem osa programmile omasest teabest sisaldub selle enda programmikoodis; aga programm nõuab sageli ka muutuvat teavet selliste asjade kohta nagu operatsioonisüsteemi versioon, milles see töötab, riistvara, millel see töötab, ja muu spetsiifiline teave, mis pole programmi enda jaoks ainulaadne. Tavaliselt sisaldub see teave milleski, mida nimetatakse klassiks või objektiks, mis on iseseisev programmeerimiskoodi osa, mis sisaldub sageli programmist eraldi failis, nii et see võib olla samaaegselt saadaval paljudele erinevatele programmidele.

Kui programmeerimiskeel ei kasuta üksikut mustrit, pääseb iga programm, mis nõuab objektis sisalduvat teavet, sellele juurde, avades objekti parameetrite komplektiga, mis määrab, millist teavet objektis programm vajab. Seetõttu luuakse iga kord, kui erinev programm objekti avab, arvuti mällu erinev objekti eksemplar. Iga objekti eksemplar võib sisaldada erinevat teavet, olenevalt iga seda avava programmi konkreetsetest vajadustest.

Kui programmeerimiskeel, mis kasutab üksikmustrit, nagu Java, alustab programmi käivitamist, otsib programm esmalt objekte, mille kohta ta teavet vajab. Kui objekt pole veel avatud, avab see objekti ilma konkreetsete parameetriteta, muutes kogu objektis sisalduva teabe kättesaadavaks kõikidele programmidele. Kui objekt on juba avatud, loeb see lihtsalt objektis oleva teabe ja jätkab. Sel viisil on üksikmustrit kasutavas objektis sisalduv teave alati sama, mistõttu ei ole vaja avada korraga palju erinevaid objekti versioone. See säästab ruumi arvuti mälus ja võib ka kiirendada, kuna teised programmid pääsevad teabele juurde, ilma et peaksid kulutama aega objekti uue versiooni loomisele.