Я время от времени занимаюсь этим, и мне кажется, что это дизайнерский запах, или если есть лучший дизайн, который я могу использовать.Итерация над списком типов
Существует процесс с несколькими шагами, который известен во время компиляции, но, скорее всего, изменится по дороге. Я фиксирую общность в абстрактном классе Step, пишу StepLister, который возвращает список шагов, по одному для каждого производного класса Step, а затем StepsRunner, который вызывает StepLister, затем выполняет итерации по списку и запускает каждый шаг. Иногда один шаг будет зависеть от результата предыдущего шага, иногда нет.
Любые предложения?