public class GameFactory : IFactory { private readonly DiContainer _container; public GameFactory(DiContainer container) { _container= container; } public T Create() where T : IState { return _container.Instantiate(); } }