TPL 数据流库对我的应用非常有用。我有大约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);
...
}
我需要将我的大型工作流程方法转化为面向对象设计。我希望能够轻松地在未来添加或删除工作流程步骤。也许有人解决了这个问题?
我猜Workflow最合适的架构是状态设计模式,但我认为TPL DataFlow已经使用了这种模式,那会过度架构。