Но, типа, план такой: 1. Сделать ConnectionCreator, в него прокинуть env, schema. 2. В ConnectionCreatore решить, какой из нужных классов создавать. Это ж просто композиция получается.
Сначала конфиг, а потом класс? Может пусть тогда принимает класс который инициализирует? def create(self, cls: Type) -> Connection: return cls(*self.config)