Dotyczy C++, Java, C# itp.
Czasami jest potrzeba, żeby jakiś obiekt lub zmienna występowała w jednym egzemplarzu w ramach całego programu. Taką ideę realizuje singleton. Działa on tak, że przy pierwszym przywołaniu tworzy obiekt, a przy każdym następnym przywołuje utworzony obiekt.
Wydaje mi się, że dokładnie ten sam skutek będzie, jak wszystkie pola i metody będą ze słowem "static" i będzie się odwoływać o nich poprzez klasę, a nie poprzez obiekt.
Czy jest jakaś różnica między singletonem a static z punktu widzenia działania programu? Dlaczego podejście ze static nie jest singletonem pomimo, że spełnia warunki singletonu, czyli występuje w jednym egzemplarzu i jest dostępny globalnie z całego programu.