Должен ли я использовать поток данных TPL для борьбы со сложностью, если нет параллелизма?
У меня есть проект, который имеет блоки рабочего процесса семантически. Решение не включает в себя какие-либо параллельные операции или операции с процессором, а также не требует масштабируемости. У меня просто есть вход, и он обрабатывается и передается по конвейеру блоков. Каждый блок обрабатывает элемент, принимает решение и передает его следующему блоку. Чтобы бороться со сложностью, можно ли использовать поток данных TPL или это будет излишним, так как нет параллелизма, и я должен использовать обычную тактику ООП? Другими словами, является ли TPL DataFlow правильным инструментом для этой работы?
1 ответ
DataFlow предназначен именно для тех факторов, которые вам не нужны ("The solution does not involve any concurrency or CPU bound operations nor scalability is required"
).
Что не так с цепочкой методов?
var input = ...;
var result1 = F1(input);
var result2 = F2(result1);
var result3 = F3(result2);
return result3;
То, что вы описали, настолько просто, что я не вижу необходимости больше ничего делать. В частности, неясно (пока возможно), что ООП совпадает. Вы не описали объекты или данные. Вы описали процесс, который отображается на код, а не на объекты.