누군가 'POCO'가 정확히 무엇을 의미하는지 정의 할 수 있습니까? 나는이 용어를 점점 더 자주 만나고 있는데, 그것이 일반 수업에 관한 것인지 아니면 더 의미가 있는지 궁금합니다.
누군가 'POCO'가 정확히 무엇을 의미하는지 정의 할 수 있습니까? 나는이 용어를 점점 더 자주 만나고 있는데, 그것이 일반 수업에 관한 것인지 아니면 더 의미가 있는지 궁금합니다.
답변:
"일반적인 오래된 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; }
}
위의 예제는 특수한 클래스를 상속 받아 추가 비헤이비어를 제공하고 사용자 정의 속성을 사용하여 비헤이비어를 변경합니다. 두 클래스에 동일한 속성이 있지만 더 이상 일반 객체 가 아닙니다 .
System.Object
는 POCO입니다. 그것이 ExternalFramework.OrmMapperBase
또는 그와 비슷한 것을 상속 받으면 더 이상 POCO가 아닙니다.
대부분의 사람들은 평범한 CLR 객체 (이전의 POJO-평범한 자바 객체와 반대)
POJO 하나는 EJB에서 나왔습니다. 이것은 ORM 또는 그와 비슷한 쿼리에서 반환 된 값 객체와 같은 것에 대해 특정 부모 클래스에서 상속해야하므로 EJB에서 이동하려는 경우 (예 : 봄), 당신은 박제했다.
POJO는 상속 또는 속성 마크 업을 사용하여 프레임 워크에서 "작동"하도록 강요하지 않는 클래스입니다.
POCO는 .NET을 제외하고 동일합니다.
일반적으로 ORM 주변에서 사용됩니다-더 오래된 (및 현재의 일부는) 특정 기본 클래스에서 상속해야합니다.이 클래스는 해당 제품과 연결되어 있습니다. 새로운 것들은 dont합니다 (내가 아는 변형이기 때문에 최대 절전 모드)-당신은 수업을 만들고 ORM에 등록하면 당신은 벗어납니다. 훨씬 쉽게.
나는 이것에 대해 틀릴지도 모른다. 그러나 어쨌든, POCO는 Plain Old Class CLR Object이고 POJO plain old Java Object에서 온 것이라고 생각한다 . 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}";
}
}
POCO는 "Plain Old CLR Object"의 약자입니다.
다른 답변을 추가하기 위해 POxx 용어는 모두 POTS ( Plain old telephone services ) 에서 나온 것으로 보입니다 .
REST, SOAP 등과 관련된 복잡한 다중 계층 구조가 아닌 단순한 (일반적인) XML을 정의하는 데 사용 된 POX는 유용하고 모호한 용어였습니다. PO (선택 언어 삽입) O 용어가 농담을 얇게 입었습니다.
흥미 롭군 프로그래밍과 관련이 있고 POCO 가 포함 된 유일한 것은 POCO C ++ 프레임 워크 입니다.
POCO가 Plain Old Class Object 또는 Plain Old C Object를 99.9 %의 사람들에게 의미한다고 확신하지만 POCO는 스크립트 언어로 작성된 Animator Pro (Autodesk)이기도합니다.