title: Singleton Factory to produces multiple singleton instances
body: <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>