Kas yra Singleton modelis?

Matematinė viengubo sąvoka yra skaičių rinkinys, kuriame yra tik vienas skaičius. Programinės įrangos inžinieriai ir programuotojai išvertė šią sąvoką į vadinamąjį vienetinį modelį, kai tam tikras informacijos rinkinys įvairios programos pasiekiamas tik vieną kartą ir visada turi tą patį instrukcijų ar informacijos rinkinį. Vienkartinis modelis naudojamas programavimo kalbose, tokiose kaip Java, siekiant apibrėžti visuotinį kintamąjį – informacijos dalį, naudojamą visoje sistemoje, kuri išlieka tokia pati ir kurią reikia apibrėžti tik vieną kartą, o ne daug kartų.

Daugumoje programavimo kalbų, kad programa galėtų paleisti, jai reikia papildomos informacijos apie jos aplinką. Dauguma su programa susijusios informacijos yra jos programos kode; tačiau programai dažnai taip pat reikalinga kintama informacija apie tokius dalykus kaip operacinės sistemos, kurioje ji veikia, versija, aparatinė įranga, kurioje ji veikia, ir kita specifinė informacija, kuri nėra būdinga pačiai programai. Paprastai ši informacija yra kažkuo, vadinamame klase arba objektu, kuris yra nepriklausoma programavimo kodo dalis, dažnai esanti atskirame nuo programos faile, kad ji galėtų būti prieinama daugeliui skirtingų programų vienu metu.

Jei programavimo kalba nenaudoja viengubo šablono, kiekviena programa, kuriai reikalinga objekte esanti informacija, ją pasiekia atidarydama objektą su parametrų rinkiniu, nurodančiu, kokios informacijos reikia programai objekte. Todėl kiekvieną kartą vis kitai programai atidarius objektą, kompiuterio atmintyje sukuriamas vis kitas objekto egzempliorius. Kiekviename objekto egzemplioriuje gali būti skirtinga informacija, atsižvelgiant į konkrečius kiekvienos jį atidarančios programos poreikius.

Kai programavimo kalba, kuri naudoja pavienį šabloną, pvz., Java, pradeda vykdyti programą, programa pirmiausia ieško objektų, iš kurių jai reikia informacijos. Jei objektas dar nėra atidarytas, jis atidaro objektą be jokių konkrečių parametrų, todėl visa objekte esanti informacija tampa prieinama visoms programoms. Jei objektas jau atidarytas, jis tiesiog nuskaito objekte esančią informaciją ir tęsia. Tokiu būdu informacija, esanti objekte naudojant pavienį šabloną, visada yra ta pati, todėl nereikia vienu metu atidaryti daugelio skirtingų objekto versijų. Taip sutaupoma vietos kompiuterio atmintyje ir taip pat gali padidėti greitis, nes kitos programos gali pasiekti informaciją negaišdamos laiko kurdamos naujos objekto versijos.