我编写了一个简单的应用程序,其中包含几个步骤。每个步骤均采用其指定的输入数据并产生其指定的输出。我尝试基于管道模式来实现这种模式。有一些共同的部分: 每个步骤必须实现的界面:
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> {}
这是一个问题。我必须存储数据的关键常量,并在每个步骤的开始阶段提取步骤所需的值。有没有更优雅的方法来实现这种方法?