Singleton Factory to produces multiple singleton instances : <p>I have two singleton classes in my project. </p>

<pre><code>public class VStateManager : IVState
{
    private static readonly object _createLock = new object();
    private static VStateManager _vsManager = null;
    public static VStateManager GetVStateManager()
    {
        lock (_createLock)
        {
            if (_vsManager == null)
            {
                return new VStateManager();
            }
            return _vsManager;
        }
    }
}

public class VTRFactory : IVTR
{
    private static VehicleFactory _VTRFactory =null;
    private static readonly object _createLock = new object();

    public static VehicleFactory GetVTRFactory()
    {
        lock(_createLock)
        {
            if(_VTRFactory == null)
            {
                return new VTRFactory();
            }
            return _VTRFactory;
        }
    }
}
</code></pre>

<p>My colleague suggested to create a singleton class (<code>something like a singleton factory</code>) that accepts a generic interface and produces both these <code>singleton objects</code></p>

<p>How can this be done.? </p>
