Ce este modelul Singleton?

Conceptul matematic al unui singleton este un set de numere care conține un singur număr. Inginerii de software și programatorii au tradus acest concept în ceva numit model singleton, în care un set specific de informații este accesat de diverse programe o singură dată și conține întotdeauna același set de instrucțiuni sau informații. Modelul singleton este folosit în limbaje de programare, cum ar fi Java, pentru a defini o variabilă globală, o informație utilizată în întregul sistem care rămâne aceeași și trebuie definită o singură dată în loc de mai multe ori.

În majoritatea limbajelor de programare, înainte ca un program să poată rula, este nevoie de informații suplimentare despre mediul său. Majoritatea informațiilor specifice programului sunt conținute în propriul cod de program; cu toate acestea, un program necesită adesea și informații variabile despre lucruri precum versiunea sistemului de operare în care rulează, hardware-ul pe care rulează și alte informații specifice care nu sunt unice pentru programul în sine. De obicei, aceste informații sunt conținute în ceva numit clasă sau obiect, care este o bucată independentă de cod de programare, adesea conținută într-un fișier separat de program, astfel încât să poată fi disponibil pentru mai multe programe diferite simultan.

Dacă un limbaj de programare nu folosește modelul singleton, fiecare program care necesită informații conținute într-un obiect îl accesează prin deschiderea obiectului cu un set de parametri care specifică de ce informații din obiect are nevoie programul. Prin urmare, de fiecare dată când un program diferit deschide obiectul, o instanță diferită a obiectului este creată în memoria computerului. Fiecare instanță a obiectului poate conține informații diferite, în funcție de nevoile specifice ale fiecărui program care îl deschide.

Când un limbaj de programare care utilizează modelul singleton, cum ar fi Java, începe să ruleze un program, programul caută mai întâi obiectele din care are nevoie de informații. Dacă un obiect nu este deja deschis, acesta deschide obiectul fără parametri specifici, făcând toate informațiile conținute în obiect disponibile tuturor programelor. Dacă obiectul este deja deschis, pur și simplu citește informațiile din obiect și continuă. În acest fel, informațiile conținute într-un obiect folosind un model singleton sunt întotdeauna aceleași, deci nu este nevoie să deschideți mai multe versiuni diferite ale obiectului simultan. Acest lucru economisește spațiu în memoria computerului și poate crește, de asemenea, viteza, deoarece alte programe pot accesa informațiile fără a fi nevoie să-și petreacă timp creând o nouă versiune a obiectului.