Od czasu do czasu robię tego typu rzeczy i zastanawiam się, czy to zapach projektu, czy też istnieje lepszy wzór projektu, którego mogę użyć.Iteracja nad listą typów
Istnieje proces z wieloma krokami, które są znane w czasie kompilacji, ale prawdopodobnie ulegną zmianie na drodze Uchwycę powszechność w abstrakcyjnej klasie Step, napiszę StepListera, który zwraca listę kroków, po jednym dla każdej pochodnej klasy Step, a następnie StepsRunner, który wywołuje StepLister, a następnie iteruje na liście i wykonuje każdy krok. Czasami jeden krok będzie zależał od wyniku z poprzedniego kroku, czasem nie.
Wszelkie sugestie?