(现在我已经注意到了首字母缩写词......)
提出这个问题的一个更好的方法是:你应该何时使用DTO以及TPL数据流网络中的POCO ? (因为更好的选择可能取决于具体情况)。
我已经完成了两种方式,我不确定何时使用其中一种。处理逻辑应该在块中(即,传递给标准块的lambda)还是应该按照惯例封装在对象中?
(提醒一下,在POCO vs DTO question中讨论了DTO和POCO的内容。)
我倾向于大约70%的DTO流向网络,因为:
在设计/编码数据流网络时,我的心智模型专注于多阶段转换管道 - 数据会再次转换和转换,然后再转换。重点是转换,而不是每种数据项的“行为”。我希望看到转换是作为一组(相对)小函数(lambdas)布局的,我可以一起浏览。
流中的项通常不是应用程序的模型类的实例,它们通常只是在流中创建并在流结束时销毁的实例。 (有时他们的生活时间足够长,可以从一个街区转到另一个街区。)
另一方面:
您有时可能会认为数据项正在进行连续转换,这会对包含行为的数据类产生影响。
如果你在数据类中封装了行为,那么创建数据流块并将它们挂起就变成了样板(因为在块的lambdas中没有完成特定于数据的工作),因此你可以轻松地创建相当通用的构建器描述建立任何网络。
(我唯一相对肯定的是,不应该在一个网络中混合使用样式。)
但是我没有足够的经验可以制定任何指导方针来建议如何选择。我正在寻找这样的指导方针,或者需要考虑的pro / con参数。
答案 0 :(得分:2)
这取决于您正在执行的处理类型,我认为TDF
对此决定没有任何影响。
如果您正在执行的操作确实是项目的“方法”(例如Eat
适用于Hamster
),那么就拥有项目本身的逻辑。另一方面,如果项目和流程之间没有真正的关系(例如记录),项目只是“通过”一个块,然后在块的方法上有逻辑。
答案 1 :(得分:0)
Petri Net Tokens的基类应该是什么?
Object Nodes in UML Activity Diagrams的基类应该是什么?
任何课程都会
虽然你的问题很长,但对我来说,它属于同一个问题/答案类别