'POCO'的定义

时间:2008-10-30 12:30:13

标签: class poco

有人可以定义'POCO'的含义吗?我越来越频繁地遇到这个词了,我想知道它是否只是关于普通课程还是意味着什么呢?

11 个答案:

答案 0 :(得分:182)

“普通老C#对象”

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

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

要澄清:换句话说,它们并非源自 一些特殊的基类,也不会为它们的属性返回任何特殊类型。

答案 1 :(得分:43)

大多数人都说过 - 普通的旧CLR对象(而不是之前的POJO - 普通的旧Java对象)

POJO来自EJB,它要求您从特定的父类继承诸如值对象之类的东西(从ORM或类似的查询中获取的内容),所以如果你想从EJB迁移(例如春天),你被塞满了。

POJO只是不强制继承或任何属性标记的类,使它们在你正在使用的任何框架中“工作”。

POCO是相同的,除了.NET。

通常它会在ORM周围使用 - 较旧(以及一些当前版本)要求您继承特定的基类,这会将您与该产品联系起来。新的不要(nhibernate是我所知道的变种) - 你只是创建一个类,用ORM注册它,然后你就关闭了。更容易。

答案 2 :(得分:20)

我可能错了。但无论如何,我认为POCO是Plain Old Class CLR对象,它来自POJO普通的旧Java对象。 POCO是一个保存数据且没有行为的类。

以下是用C#编写的示例:

class Fruit 
{
    public Fruit() { }

    public Fruit(string name, double weight, int quantity) 
    {
        Name = name;
        Weight = weight;
        Quantity = quantity;
    }

    public string Name { get; set; }
    public double Weight { get; set; }
    public int Quantity { get; set; }

    public override string ToString() 
    {
        return $"{Name.ToUpper()} ({Weight}oz): {Quantity}";
    }
}

答案 3 :(得分:9)

POCO代表“Plain Old CLR Object”。

答案 4 :(得分:7)

要添加其他答案,POxx术语似乎都来自POTS(Plain old telephone services)。

用于定义简单(普通旧)XML的POX,而不是与REST,SOAP等相关的复杂多层内容,是一个有用且模糊的术语。 PO(选择插入语言)O术语相当磨损了笑话。

答案 5 :(得分:6)

在.NET中,POCO是一个普通的旧CLR对象'。它不是一个普通的旧C#对象' ...

答案 6 :(得分:5)

在Java土地中,通常“PO”表示“普通老”。其余的可能很棘手,所以我猜你的例子(在Java的上下文中)是“普通的旧类对象”。

其他一些例子

  • POJO(普通的旧java对象)
  • POJI(普通的旧java界面)

答案 7 :(得分:3)

有趣。我所知道的唯一与编程有关并且其中包含POCO的是POCO C++ framework

答案 8 :(得分:2)

在WPF MVVM术语中,POCO类是不会触发PropertyChanged事件的类

答案 9 :(得分:1)

虽然我确信POCO对于99.9%的人来说意味着普通旧类对象或普通旧C对象,但POCO也是用脚本语言构建的Animator Pro(Autodesk)。

答案 10 :(得分:0)

POCO是一个普通的旧CLR对象,它按照问题域表示应用程序的状态和行为。 它是一个纯类,没有继承,没有任何属性。 示例:

public class Customer
{
    public int Id { get; set; }

    public string Name { get; set; }
}