Я пишу простое приложение, которое состоит из нескольких шагов.Каждый шаг берет свои указанные входные данные и производит свой указанный вывод.Я пытаюсь реализовать такой паттерн на основе паттерна конвейера.Есть общие части: Интерфейс, который должен реализовывать каждый шаг:
interface IStep
{
Data Execute(Data data);
}
Интерфейс, который должен быть реализован классом, который обрабатывает шаги:
interface IProcess
{
void AddStep(IStep step);
void Run();
}
class Process: IProcess
{
private List<IStep> steps = new List<IStep>();
public void AddStep(IStep step)
{
steps.Add(step);
}
public void Run()
{
var data = new Data();
foreach(step in steps)
{
data = step.Ececute(data);
}
}
}
Реализация класса данных следующая:
public class Data: Dictionary<string, object> {}
И это проблема.Я должен хранить ключевые константы для данных и в начале каждого шага извлекать значения, необходимые для шага.Есть ли более элегантный способ реализовать такой подход?