2011-10-18 3 views
2

구성 요소간에 성가신 종속성 문제가 있으며이를 해결하는 데 몇 가지 방법을 들어보고 싶습니다.소스 런타임과 오류 런타임 구성 요소 간의 종속성

기본적으로 첫 번째 구성 요소와 마지막 구성 요소 사이의 작은 종속성을 제외하고는 에 거의 의존하는 세 구성 요소가 서로 개로 구성되어 있습니다. 구체적으로 JIT 컴파일러이지만 다른 상황에서 발생할 수있는 광범위하게 발생하는 추상 종속성 유형입니다.

Component dependency diagram

성분이 유동 의존성 순서 근본적이고; 소스/AST 생성, 코드 생성 및 런타임 다이어그램에서 알 수 있듯이 런타임에 생성 된 오류는 소스 위치 항목과 상관 될 수있는 ID를 전달할 수 있어야합니다. 까다로운 부분은이 ID가 반드시 정수형 일 필요는 없다는 것입니다. 지금까지 SourceItemID은 소스 구성 요소의 내부 유형 이었지만 이제는 외부 구성 요소로 정의해야합니다.

여기에 사용할 최적의 패턴은 무엇입니까? 어쩌면 원하는 소스 위치 ID 런타임 오류 형식을 templatizing 생각했다.

답변

1

가장 간단한 해결책은 모든 실제 처리 단위가 사용하는 독립 단위 (단일 헤더 일 수도 있음)로 모듈에서 사용되는 모든 유형 및 공통적 인 동작을 정의하는 것입니다.

최소 오버 헤드/두통 및 호환성 문제 (이러한 공유 유형은 다른 앱/플러그인과의 통신을 위해 어느 시점에서나 유용 할 수 있음) 가능한 경우 해당 유형의 POD를 유지하십시오.

"Templatizing"것은 사소하지 않습니다. 매우 강력하고 표현력이 뛰어나지 만 종속성을 제거하려는 경우 내 생각은 다음과 같습니다. 을 더 간단하게 만들 수 있는지 알아보십시오.

관련 문제