誰か「POCO」が正確に何を意味するのか定義してもらえますか? この用語を頻繁に目にするようになったのですが、これは単純なクラスだけに関するものなのか、それとももっと別の意味があるのか疑問に思っています。
ベストアンサー1
「昔ながらの C# オブジェクト」
通常のクラスであり、インフラストラクチャの問題やドメイン オブジェクトが持つべきではないその他の責任を記述する属性はありません。
編集 - 他の回答で述べられているように、技術的には「Plain Old CLR Object」ですが、David Arno のコメントと同様に、私は特定の言語やテクノロジーとの結びつきを避けるために「Plain Old Class Object」を好みます。
明確にするために: 言い換えると、それらは特別な基本クラスから派生するものではなく、プロパティに対して特別な型を返すものでもありません。
それぞれの例については以下を参照してください。
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; }
}
上記の例では、特別なクラスから継承して追加の動作を与えるとともに、カスタム属性を使用して動作を変更しています。両方のクラスに同じプロパティが存在しますが、一方は単なる古いオブジェクトではなくなりました。