【发布时间】:2017-01-30 22:10:38
【问题描述】:
TPL DataFlow 库对我的应用程序非常有用。我有大约 10 个街区,我认为数量会增加。
当我准备我的应用程序原型时,我很困惑,因为我知道我得到了功能设计。
void BIG_WORKFLOW_METHOD()
{
...
var block1 = new TransformBlock<string, string>(...);
var block2 = new TransformBlock<string, string>(...);
var block3 = new TransformManyBlock<string, string>(...);
var broadCastBlock = new BroadcastBlock<EventObject>(ev => ev);
...
var block9 = new ActionBlock<string>(...);
var block10 = new ActionBlock<EventObject>(...);
block1.LinkTo(block2);
block2.LinkTo(block3);
block3.LinkTo(block4);
broadCastBlock.LinkTo(block5);
broadCastBlock.LinkTo(block6);
...
}
我需要将我的大型工作流程方法转换为 OOP 设计。我希望能够在未来轻松地从我的工作流程中添加或删除步骤。可能有人解决这个任务吗?
我认为最适合 Workflow 的架构是 State 设计模式,但我认为 TPL DataFlow 已经使用了这种模式,这将是过度架构。
【问题讨论】:
标签: oop design-patterns architecture task-parallel-library tpl-dataflow