Ultimamente ho usato questa tecnica un paio di volte, e sto cercando di capire se ha un nome, se è uno dei pattern, ecc.
In situazioni complicate in cui potrei normalmente avere un numero di affermazioni di casi selezionati giganti, ho sperimentato un approccio più in stile plug-in.
Creo un'interfaccia, chiamiamola IProblemHandler, e forse quell'interfaccia espone una proprietà che enumera i tipi di problemi che può gestire (IProblemHandler.HandledProblems), o anche meglio, forse il problema che gestisce è incorporato nel nome della classe - convenzione sulla configurazione.
Quindi, invece di un'istruzione select case, chiamo un codice che riflette attraverso tutte le classi in un determinato assembly e tira quelli che implementano l'interfaccia, quindi determina quale è appropriato per il problema in questione, lo istanzia e risolve il problema.
In passato l'ho usato come architettura di plugin, ma si sta rivelando davvero utile come modo per gestire certi tipi di complessità. Sembra che questo sia il dominio dei contenitori IoC e così via. So che il framework di estensibilità gestito fa parte di questa roba.
Quindi ... conosci un nome per questo genere di cose?