Пошаговая схема с передачей данных между этапами - PullRequest
0 голосов
/ 30 сентября 2018

Я пишу простое приложение, которое состоит из нескольких шагов.Каждый шаг берет свои указанные входные данные и производит свой указанный вывод.Я пытаюсь реализовать такой паттерн на основе паттерна конвейера.Есть общие части: Интерфейс, который должен реализовывать каждый шаг:

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> {}

И это проблема.Я должен хранить ключевые константы для данных и в начале каждого шага извлекать значения, необходимые для шага.Есть ли более элегантный способ реализовать такой подход?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...