【发布时间】:2014-06-28 15:18:33
【问题描述】:
(现在我用首字母缩写词引起了你的注意......)
也许更好的提问方式是:什么时候应该使用 DTO,什么时候应该在 TPL 数据流网络中使用 POCO? (因为更好的选择可能取决于具体情况)。
我用两种方式都做过,但我不确定何时使用一种与另一种。处理逻辑应该在块中(即传递给标准块的 lambda)还是应该像往常一样封装在对象中?
(提醒一下,POCO vs DTO question 中讨论了 DTO 和 POCO 是什么。)
我大约 70% 倾向于网络中流动的 DTO,因为:
在设计/编码数据流网络时,我的心智模型专注于多阶段转换管道 - 数据一次又一次地转换和转换。重点是转换,而不是每种数据项的“行为”。我希望看到转换为一堆(相对)小的函数(lambdas),我可以一起浏览。
流程中的项目通常不是应用程序模型类的实例,它们通常只是在流程中创建并在流程结束时销毁的实例。 (有时它们的寿命只能从一个街区转移到另一个街区。)
另一方面:
您有时可以将数据项视为正在经历连续转换,这会影响数据类封装行为。
1234563描述构建任何网络。
(我唯一比较确定的是,样式不应该混合在一个网络中。)
但我没有足够多的经验来制定任何指导方针来建议如何选择。我正在寻找这样的指导方针,或要考虑的赞成/反对论点。
【问题讨论】:
标签: c# design-patterns poco dto tpl-dataflow