我有一个小框架,可以让我创建一个管道和过滤器系统。我有使用流畅的接口来构建管道和过滤器系统的想法:
PipeFilter pipeFilter = PipeFilter.StartBuild()
.AddFilter(new SomeFilter1())
.AddFilter(new SomeFilter2())
.AddFilter(new SomeFilter3())
.AddFilter(new SomeFilter4())
.Build();
显示的代码按预期工作。这是系统的“图片”:
SomeFilter1 -> SomeFilter2 -> SomeFilter3 -> SomeFilter4
现在,有一种过滤器,它不是一个输出,而是两个。我称之为bifurcation
。下面是一个带有 的系统示例bifurcation
:
|-> SomeFilter2 -> SomeFilter3
SomeFilter1 --|
|-> SomeFilter4
我想实现这样的东西:
PipeFilter pipeFilter = PipeFilter.StartBuild()
.AddFilter(new SomeFilter1())
.AddBifurcation()
.Output1()
.AddFilter(new SomeFilter2())
.AddFilter(new SomeFilter3())
.Output2()
.AddFilter(new SomeFilter4())
.Build();
但似乎我无法做到这一点。这甚至可能吗?在第一个示例中,我只需要一个PipeFilterBuilder
(由 返回PipeFilter.StartBuild()
)。在第二个示例中,我尝试创建其他类型的构建器来混合使用,但这似乎无济于事。
忘了提一下,我的想法是我可以在任何我想要的地方嵌套分叉,也就是说,我可以得到满是树枝的“树”!
任何人都可以对此有所帮助吗?