이미이 이름이 있는지 확실하지 않지만이 질문을 위해 피어 구현 또는 중첩 된 구현을 구현하여 많은 데이터를 포함하는 데이터 모델에서 컬렉션 클래스를 구현하는 방법을 보여줍니다. 상위/하위 엔티티 관계. 여기컬렉션 클래스는 어디에 두시겠습니까?
public class ParentEntity
{
private ChildEntityCollection children;
}
public class ChildEntity
{
}
public class ChildEntityCollection : ICollection<ChildEntity>
{
}
가장 큰 장점 :
나는 당신이 엔티티 클래스는 기본적으로 다음처럼 API 그들에게 동료를 만들기로 측면을 따라 모델 층의 컬렉션 클래스를 구현하는 경우 시나리오를 설명하는 용어 피어를 사용 동일한 유형의 하위를 저장하는 다른 엔티티 클래스에서 컬렉션 클래스를 재사용 할 수 있다는 것입니다. 중첩 된 클래스 너무 등을 구현하는 경우
나는 시나리오를 설명하기 위해 중첩 된 용어를 사용
public class ParentEntity
{
private ChildEntityCollection children;
public class ChildEntityCollection : ICollection<ChildEntity>
{
}
}
public class ChildEntity
{
}
주요 여기 장점 각 부모에서 아이를 저장하기 위해 자신의 컬렉션 클래스를 구현할 수 있다는 것입니다 그 특정 부모를 위해 가장 최적화 된 방법. 예를 들어, 하나의 상위 엔티티는 배열 데이터 구조가 잘 작동하는 반면 다른 하나는 스플레이 트리 (snplay tree)를 사용할 수 있습니다 (모호하다는 것을 알지만 내 요점은 잘 설명합니다).
Microsoft는 다양한 .NET 관련 프레임 워크에서 두 관용구를 모두 사용함을 확인했습니다. System.Windows.Forms 네임 스페이스는 중첩 된 구현에 크게 의존하는 것처럼 보입니다. 나는 더 많은 작업이 필요할지라도이 방법을 선호하는 경향이있다.
추천, 의견, 대안 아이디어?
감사합니다. 정말 공개 API를 디자인해야하는 방식에 대한 관점을 추가합니다. –