Вы правы насчет синглтона, его класса с уникальным экземпляром, который обеспечивает глобальный доступ.
Может показаться, что статический класс, но обычно он реализован по-другому.
Также имейте в виду, что этот шаблон следует использовать с некоторой осторожностью, так как его действительно трудно реорганизовать синглтоном, когда он глубоко в коде. Следует использовать в первую очередь, когда у вас есть аппаратные ограничения или реализованы уникальные точки доступа к фабрике. Я постараюсь избежать этого, когда это возможно.
Примером реализации является следующий:
public class A
{
/// <summary>
/// Unique instance to access to object A
/// </summary>
public static readonly A Singleton = new A();
/// <summary>
/// private constructor so it can only be created internally.
/// </summary>
private A()
{
}
/// <summary>
/// Instance method B does B..
/// </summary>
public void B()
{
}
}
И может использоваться как
A.Singleton.B ()
Надеюсь, это поможет.