Co to jest wzór Singleton?
Matematyczna koncepcja singletonu to zbiór liczb, który zawiera tylko jedną pojedynczą liczbę. Inżynierowie oprogramowania i programiści przełożyli tę koncepcję na coś, co nazywa się wzorcem singleton, w którym różne programy uzyskują dostęp do różnych programów tylko raz i zawsze zawierają ten sam zestaw instrukcji lub informacji. Wzorzec singletonu jest używany w językach programowania, takich jak Java, do definiowania zmiennej globalnej, informacji używanej w całym systemie, która pozostaje taka sama i musi być zdefiniowana tylko raz, a nie wiele razy.
W większości języków programowania przed uruchomieniem programu wymaga on dodatkowych informacji na temat swojego środowiska. Większość informacji specyficznych dla programu zawarta jest w jego własnym kodzie programu; jednak program często wymaga również zmiennych informacji o rzeczach, takich jak wersja systemu operacyjnego, w którym działa, sprzęt, na którym działa, oraz inne określone informacje, które nie są unikalne dla samego programu. Zazwyczaj ta informacja jest zawarta w czymś zwanym klasą lub obiektem, który jest niezależnym kawałkiem kodu programowego często zawartym w pliku oddzielnym od programu, dzięki czemu może być dostępny dla wielu różnych programów jednocześnie.
Jeśli język programowania nie używa wzorca singletonu, każdy program, który wymaga informacji zawartych w obiekcie, uzyskuje do niego dostęp, otwierając obiekt z zestawem parametrów, które określają, jakich informacji w obiekcie potrzebuje program. Dlatego za każdym razem, gdy inny program otwiera obiekt, tworzona jest inna instancja obiektu w pamięci komputera. Każde wystąpienie obiektu może zawierać różne informacje, w zależności od konkretnych potrzeb każdego programu, który go otwiera.
Gdy język programowania wykorzystujący wzorzec singletonu, taki jak Java, zaczyna uruchamiać program, program najpierw szuka obiektów, z których potrzebuje informacji. Jeśli obiekt nie jest jeszcze otwarty, otwiera go bez żadnych określonych parametrów, dzięki czemu wszystkie informacje zawarte w obiekcie są dostępne dla wszystkich programów. Jeśli obiekt jest już otwarty, po prostu odczytuje informacje w obiekcie i kontynuuje. W ten sposób informacje zawarte w obiekcie wykorzystującym wzorzec singletonu są zawsze takie same, więc nie ma potrzeby otwierania wielu różnych wersji obiektu jednocześnie. Oszczędza to miejsce w pamięci komputera, a także może zwiększyć prędkość, ponieważ inne programy mogą uzyskać dostęp do informacji bez konieczności poświęcania czasu na tworzenie nowej wersji obiektu.