Boa tarde, eu tenho uma interface (IPrinter) que possui seu métodos e varias classes que implementam IPrinter, onde cada classe seria um modelo de impressora, existe uma classe management que faz o gerenciamento, ela lê um arquivo XML que contém o nome da impressora que irá utilizar, de acordo com o nome tem um switch case que compara a string do XML com o nome das classes para poder instanciar a impressora certa.
Gostaria de saber como poderia melhorar este código para não ficar com varios Switch Cases, pois existe cerca de 30 modelos de impressoras.