Me encuentro haciendo este tipo de cosas de vez en cuando, y me pregunto si es un olor de diseño, o si hay un mejor patrón de diseño que puedo usar.iterando sobre una lista de tipos
Hay un proceso con una serie de pasos conocidos en tiempo de compilación, pero es probable que cambien en el futuro. Capturo las características comunes en una clase de pasos abstracta, escribo un StepLister que devuelve una lista de pasos, uno para cada clase derivada de Step, y luego un StepsRunner que llama a StepLister, luego itera sobre la lista y ejecuta cada paso. A veces, un paso dependerá del resultado de un paso anterior, a veces no.
¿Alguna sugerencia?