【发布时间】:2010-12-30 09:25:42
【问题描述】:
我有一个小框架,可以让我创建一个管道和过滤器系统。 我想到了使用流畅的接口来构建管道和过滤器系统:
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() 返回)。在第二个示例中,我尝试创建其他类型的构建器来混合使用,但这似乎无济于事。
忘了提一下,我的想法是我可以在任何我想要的地方嵌套分叉,也就是说,我可以得到满是树枝的“树”!
有人可以帮忙吗?
【问题讨论】:
标签: c# java oop fluent-interface