[class] ‘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; }
}

위의 예제는 특수한 클래스를 상속 받아 추가 비헤이비어를 제공하고 사용자 정의 속성을 사용하여 비헤이비어를 변경합니다. 두 클래스에 동일한 속성이 있지만 더 이상 일반 객체 가 아닙니다 .


답변

대부분의 사람들은 평범한 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 용어가 농담을 얇게 입었습니다.


답변

.NET에서 POCO는 ‘Plain old CLR Object’입니다. ‘Plain old C # 객체’가 아닙니다 …


답변

Java 토지에서 일반적으로 “PO”는 “일반”을 의미합니다. 나머지는 까다로울 수 있으므로 (자바의 맥락에서) 귀하의 예가 “일반 클래스 객체”라고 생각합니다.

다른 예

  • POJO (일반 오래된 Java 오브젝트)
  • POJI (일반적인 Java 인터페이스)