首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“‘POCO”定义

“‘POCO”定义
EN

Stack Overflow用户
提问于 2008-10-30 12:30:13
回答 10查看 113.7K关注 0票数 263

谁能给“POCO”下个确切的定义?我越来越频繁地遇到这个术语,我想知道它是否只是关于普通类,或者它意味着更多?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-10-30 12:31:20

“普通旧C#对象”

只是一个普通的类,没有描述基础设施问题的属性,或者域对象不应该具有的其他职责。

编辑-正如其他答案所述,从技术上讲,它是“普通旧CLR对象”,但我和David Arno一样,更喜欢“普通旧类对象”,以避免与特定语言或技术的联系。

需要说明的是:换句话说,它们不是从某个特殊的基类派生出来的,也不会为它们的属性返回任何特殊的类型。

下面是每种方法的示例。

POCO示例:

代码语言:javascript
复制
public class Person
{
    public string Name { get; set; }

    public int Age { get; set; }
}

不是POCO的东西的例子:

代码语言:javascript
复制
public class PersonComponent : System.ComponentModel.Component
{
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public string Name { get; set; }

    public int Age { get; set; }
}

上面的示例既继承了一个特殊的类,为它提供了额外的行为,也使用了一个自定义属性来更改行为…两个类都有相同的属性,但其中一个不再只是一个普通的旧对象。

票数 223
EN

Stack Overflow用户

发布于 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注册它,然后你就可以离开了。容易多了。

票数 51
EN

Stack Overflow用户

发布于 2008-10-30 12:32:52

POCO代表"Plain Old CLR Object“。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/250001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档