POCO和'价值对象'之间的唯一区别是POCO目标.Net?

时间:2011-04-06 08:06:46

标签: c# .net poco value-objects data-transfer-objects

我试图理解POCO的确切含义(是的,我已经读过维基百科,但仍然无法得到主要观点:()。

我理解Value Object是一个基本上只有属性来保持数据没有任何行为的对象。

在这种情况下,在我看来POCO和'Value Objects'具有相同的结构,但不同之处在于POCO的目标是.net框架。

我说错了吗?

感谢。

1 个答案:

答案 0 :(得分:7)

普通的旧CLR对象

术语POCO(Plain Old CLR Object)通常用于表示对外部第三方库没有任何直接或间接依赖性的 .NET类。 POCO这个词本身并没有说明对象是仅包含数据还是包含数据和行为。但它确实表明该类是在.NET平台之上构建的。

值对象

值对象(或数据传输对象)是一种通用的设计模式,描述了将对象用作数据结构以在系统的不同部分之间传输数据。这些对象通常只包含数据,除了访问器方法之外没有任何行为。

鉴于上述定义,可以公平地说,在.NET平台上构建的值对象不依赖于第三方框架是POCO。同样,POCO可能是也可能不是价值对象,具体取决于其结构及其使用方式。

相关资源: