2009-09-21 4 views
-1

서로 참조하는 두 개의 Flex 라이브러리가 있습니다. 둘 다 링크 유형 "External"을 사용하고 Loader 클래스로 수동으로로드합니다.flex 라이브러리의 순환 종속성

"A cycle was detected in the build path of project: foo"오류가 발생합니다.

해결 방법이 있습니까? 어쩌면 컴파일러 또는 뭔가에 대한 매개 변수.

나는 소스 코드가 라이브러리로 컴파일되지 않는 external 링크 유형에 있기 때문에, 문제가있을한다고 생각하지 않습니다

...

답변

2

당신은 당신의 코드를 다시 생각해야하는 것보다 소리.

어쩌면 인터페이스를 사용하여 편도를 편향시킬 수 있습니까?

종속성에 대한 개요를 제공 할 수 있다면 나 또는 다른 사람이 구조를 재 설계하는 방법에 대한 아이디어를 줄 수 있습니다.

편집 :

당신이 나에게 마이너스를 줄의 나 ...이 주제에 Wikipedia article를 인용하자 좋은 방법 :

[...] 소프트웨어 설계 원형 의존성 더 큰 소프트웨어 사이 단위는 반대 모양부정적인 효력 때문에, 고려된다.

는 [...]

순환 종속성 소프트웨어 프로그램의 많은 원치 않는 효과가 발생할 수 있습니다. 보기의 소프트웨어 설계 점에서 대부분의 문제가 은 감소 또는 가 단일 모듈의 불가능 별도의 재사용을 만드는 상호 의존 모듈의 꽉 커플 링입니다.

순환 종속성은 하나 개의 모듈에서의 작은 변화는 로컬 다른 모듈로 전파 불필요한 글로벌 효과가있는 경우 (프로그램 오류를 컴파일 오류)를 도미노 효과를 일으킬 수있다. 순환 종속성을 사용하면 도 무한 재귀가되거나 기타 예기치 않은 오류가 발생할 수 있습니다.

순환 종속성은 미사용 객체를 할당 해제 특정 매우 원시적 자동 가비지 컬렉터 (참조 계수를 사용하는 것과)을 방지하여 메모리 누출을 일으킬 수있다.

[...]

순환 종속성은 종종 콜백 기능의 어떤 종류를 구현해야 미숙 한 프로그래머 도입 있습니다. 숙련 된 프로그래머는 옵저버 패턴과 같은 디자인 패턴을 적용하여 불필요한 순환 종속성을 피합니다.

(강조는 추가)

하지만 다시, 어쩌면 당신은 위키 피 디아에 기록하는 집단보다 똑똑하다 ... 서로 나쁜 생각입니다 참조

+0

한 외부 플렉스 라이브러리 . 이 문제를 해결하기위한 실질적인 방법은 라이브러리를 병합하고 두 번째 라이브러리에 대한 공통 종속성을 추출하는 것입니다.하지만 여전히 재사용 가능한 라이브러리의 목적을 상실합니다. – Ryan