谁能给“POCO”下个确切的定义?我越来越频繁地遇到这个术语,我想知道它是否只是关于普通类,或者它意味着更多?
发布于 2008-10-30 12:31:20
“普通旧C#对象”
只是一个普通的类,没有描述基础设施问题的属性,或者域对象不应该具有的其他职责。
编辑-正如其他答案所述,从技术上讲,它是“普通旧CLR对象”,但我和David Arno一样,更喜欢“普通旧类对象”,以避免与特定语言或技术的联系。
需要说明的是:换句话说,它们不是从某个特殊的基类派生出来的,也不会为它们的属性返回任何特殊的类型。
下面是每种方法的示例。
POCO示例:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}不是POCO的东西的例子:
public class PersonComponent : System.ComponentModel.Component
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string Name { get; set; }
public int Age { get; set; }
}上面的示例既继承了一个特殊的类,为它提供了额外的行为,也使用了一个自定义属性来更改行为…两个类都有相同的属性,但其中一个不再只是一个普通的旧对象。
发布于 2008-10-30 13:15:34
大多数人都说过- Plain Old CLR对象(与早期的POJO - Plain Old Java对象相对)
POJO one来自EJB,它要求您从特定的父类继承值对象(从ORM或类似的查询中返回的内容),因此,如果您想要从EJB (例如,Spring)迁移,您将被填满。
POJO只是一些类,它们不会强制继承或任何属性标记来使它们在您使用的任何框架中“工作”。
POCO是相同的,除了在.NET中。
通常它会被用在ORM的周围--旧的(和一些最新的)需要你继承一个特定的基类,这个基类将你和那个产品联系在一起。较新的不是(nhibernate是我知道的变体)-你只需要创建一个类,用ORM注册它,然后你就可以离开了。容易多了。
发布于 2008-10-30 12:32:52
POCO代表"Plain Old CLR Object“。
https://stackoverflow.com/questions/250001
复制相似问题