2017-11-15 22 views
0

먼저 검색을 통해 자신을 찾을 수 있었으면해서 사과해야합니다 ... 녹슨 것입니다. 새로운 것들 그래서 내가 뭘 원하는지 설명하는 데 올바른 용어를 사용하고 있는지 확실하지 않다 - 멍청한 놈을 걷어차 마십시오 :)객체의 자체 참조 순서 트리 (C#/ASP.Net Core/EFCore)를위한 디자인 패턴

질문 : 1 부 - 특정 시나리오 수업을 만들려고합니다.

A) 주문 사항과이 유지되어야한다 "목표 객체"의 나무,

B)로서 단독으로 할 수있다 트리에서 각 목표 객체를 생성한다 단일 개체 또는 하위 목표 집합 (하위 목표 추가 하위 목표 등) -

c) 트리를 효율적으로 편집 할 수있는 능력이 필요합니다. 임의 목표 오브젝트, 보조 목표 추가/제거/순서 변경/이동, 트리 분기/제거 추가). 나는 확실히 이것을 할 수있는 방법을 찾아 낼 수는 있지만 편집/관리 및 편집을 관리하는 데 필요한 코드의 양 측면에서 내 방식이 매우 비효율적 일 것이라고 강력히 의심합니다.

내 질문에 대한 질문 : 저에게 효과적인 패턴을 보여줄 디자인 패턴이나 튜토리얼을 누군가가 가르쳐 줄 수 있습니까? 2 부

(I 현재 EFCore는 SQLSERVER를 가리키는 C# & ASP.NET 코어를하고 있어요) : 또한 환영받을 것입니다 C 번호에 적합한 기본적인 디자인 패턴의 훌륭한 세트가 책/사이트에 대한 권장 사항.

제공 할 수있는 도움에 감사드립니다. 내 자신의 질문에 대답하는 크리스

답변

0

시도 :

제 1 부 : 내가 지금까지 발견 한 가장 가까운 잎과 복합 클래스가 상속되는 추상 클래스를 사용하여 복합 디자인 패턴입니다. 그러나, 나는 이것을 a) 잎을 합성으로 또는 그 반대로 바꾸는 메커니즘을 추가해야한다고 생각한다. b)이 패턴을 볼 수있는 것에서부터 "순서 및 변경"제약을 해결할 수 없다. 일부 주문 색인을 구현하고 순서에 따라 변경 사항을 관리해야합니다. 누구나 이러한 작업을 효율적으로 수행 할 수 있습니까?

파트 2 : Gang of Four 및 http://www.dofactory.com/net/design-patterns이 있으므로 제 2 부는 닫았지만 다른 제안은 분명히 환영합니다.

0

프로그래밍 패턴을 찾지 않는 것처럼 들리 겠지만 데이터 구조를 찾고 있습니다.

Red-Black Trees을 살펴보십시오.

이것은 노드의 순서를 유지하는 (준) 균형 트리이며 모든 작업은 로그 (즉, 효율적)입니다.