2013-02-26 2 views
3

복합 디자인 패턴 (또는 그래프/노드 유형 시스템)을 구현 한 경우 노드를 연결하고 클래스 인스턴스간에 링크를 만드는 과정을 가장 잘 나타내는 디자인 패턴은 무엇입니까?복합 요소를 연결하는 데 사용할 수있는 디자인 패턴은 무엇입니까?

현재 작업 예제는 팩터 리 패턴을 사용하여 각 클래스 인스턴스를 구성하지만 이제는 코드 영역이나 파일의 데이터를 기반으로 연결합니다.

아마도 '빌더'패턴 일지 모르겠지만 본 적이있는 예제는 매우 단순하고이 예제를 기반으로 내 도메인에 패턴을 적용하는 것이 아주 쉽습니다. 아마도 복합 패턴을 참조하여 내 도메인에 더 적합한 다른 패턴이있을 수 있습니다. 보기 및 참고는 중대하게 평가 될 것입니다.

많은 감사 D

편집 : 조금 더 조사 창조적 패턴에 대해 좋은 블로그를 돌았 다. 그들은 엄지의 규칙대로 '건축업자'가 종종 복합재를 만들 것이라고 말합니다. 한 번에 전체 복합 요소를 구축하고자하는 경우

http://sourcemaking.com/creational_patterns

+0

+1 흥미로운 질문 및 sourcemaking.com에 대한 링크 - 좋은 사이트! – ngm

답변

1

이 빌더는 좋은의 choise이다. 예를 들어, 도시에 도로 그래프를 작성하고 전체 도시 빌더 패턴을 작성하려는 경우 빌더에 하위 빌더를 추가하여 이웃을 추가하여 빌더 클래스가 너무 커지지 않도록 할 수 있습니다. 하지만 복합 요소가 이미 존재 한 후에 요소를 추가하려면 다음을 제안하십시오. 요소를 추가 할 위치를 알고 있으면 반복자에 복합 요소를 제공하고 원하는 인덱스 또는 새 위치를 사용하여 반복기에 추가 메서드를 제공 할 수 있습니다 요소를 추가하십시오. 예를 들어, 트리를 정렬했다면 iterator는 tree의 위치에 따라 요소를 추가 할 위치를 알 수있는 add 함수를 갖게됩니다. 또 다른 옵션으로, 각 장소에 실제로 없다는 요소를 컴포지트에 추가해야하는 경우, 예를 들어 거리가있는 도시를 빌드하고 가장 짧은 거리 옆에 거리를 추가하려고합니다. 글쎄,이 경우에는 아마 당신의 합성 유형에 정적 내부 클래스 될 필터 또는 일종의 술어를 사용합니다.

관련 문제