2024-08-15 05:00:00

“少”的定义

有人能定义一下“POCO”的确切含义吗?我越来越频繁地遇到这个术语,我想知道它只是关于普通类还是意味着更多的东西?


当前回答

POCO代表“Plain Old CLR Object”。

其他回答

要添加其他答案,POxx术语似乎都起源于POTS(普通老式电话服务)。

POX用于定义简单的(普通的)XML,而不是与REST、SOAP等相关联的复杂的多层内容,这是一个有用且有点有趣的术语。PO(插入选择的语言)O术语已经让这个笑话变得很乏味了。

POCO代表“Plain Old CLR Object”。

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

普通的旧式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; }
}

上面的例子既继承了一个特殊的类来赋予它额外的行为,也使用了一个自定义属性来改变行为……两个类中存在相同的属性,但其中一个不再只是一个普通的旧对象。

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