Wzorzec bardzo prosty w kontrukcji i często stosowany. Gwarantuje korzystanie z jednej instancji globalnego obiektu w całej aplikacji. Dostęp do instancji klasy Singleton uzyskujemy za pomocą statycznej publicznej właściwości Instance. Dodany prywatny konstruktor uniemożliwia stworzenie obiektu. Słowo kluczowe sealed uniemożliwia dziedziczenie po klasie naszego singletona.

{code brush: c#} public sealed class Singleton { private static Singleton theInstance = null; private static readonly object padlock = new object(); private Singleton() {} public static Singleton Instance { get { if (theInstance == null) { lock (padlock) { if (theInstance == null) theInstance = new Singleton(); } } return theInstance; } } } {/code}