2011-02-03 2 views
1

프리즘 모듈은 다른 모듈이 제공하는 서비스에 의존합니다. 안전한 방법으로 상호 의존성을 제시 할 수있는 방법이 있습니까? 나는 그것들을 단일 모듈로 결합하려고 생각했지만 실제로는 논리적으로 결합하지 않았다.프리즘 및 순환 의존도

현재, MEF는이 작업을 수행 할 수 있습니다. 나는 MEF가 굉장하다는 것을 안다! 나는 MEF를 사랑해. 그 기술로 전환 할 수없는 이유는 프레임 워크와 IDE에서 업그레이드가 필요하기 때문입니다 (지금 당장은 현명하지 못합니다).

나와 같은 문제가있는 경우 MEF을 확인하십시오. 그것의 늦은 나를 위해; 너 자신을 구해라!

답변

0

나는 무엇을 해야할지 알았다. 타임 아웃 서비스는 초기화시 프리젠 테이션 서비스에 필요하지 않으므로 지연된 속성 안에서 해결했습니다.

타임 아웃 서비스가 모듈 초기화시 등록되므로이 속성은 필요할 때 사용할 수 있습니다. 그 이상은 아니지만 작동합니다. 이야기의 도덕은 MEF입니다.

한숨!

+0

이 모듈이 상호 의존적 인 것처럼 보이지만 논리적으로는 같은 모듈이어야합니다. –

+0

@Anderson, 모듈 분해가 항상 종속성 선을 따라 가장 잘 분할되지는 않습니다. 때로는 두 개의 분리 된 개체 사이에 일대일 관계를 가질 필요가 있습니다. 그들은 상호 의존적이지 않다. 왜냐하면 그들은 서로에 의해 제공되는 서비스에 의존하기 때문에 서로 의존적이지 않다. 그것들을 결혼하는 것은 논리가 아닌 편리하고 실용적인 행동이 될 것입니다. 나는 시간 제약으로 내가 실용적이어야한다고 요구할 때까지 이상 주의자 다. 고맙게도, 나는 약간의 여유와 해결책을 가지고 있습니다. – Jordan

+0

두 개의 모듈이 종속되어있어 더 적절하게 인수 분해 할 수없는 경우 (다른 모듈에 문제가되는 서비스를 두거나 쉘에 들어있는 기본 핵심 기능이라고 판단 함)를 실행하지 않았습니다. 너의 시나리오는 뭐니? –

3

논리적 인 해결책은이 두 모듈간에 공유되는 서비스가 세 번째 모듈로 추출된다는 것입니다. 두 개의 현재 모듈은 모두 공유 모듈에 안전하게 의존 할 수 있습니다. 순환 종속성이 없으며 잘 분리 된 프로젝트 구조가 있습니다.

이유를 확인할 수없는 이유는 무엇입니까?

+0

이들은 논리적으로 매우 원자 단위입니다. 즉, 각각 단일 서비스를 제공합니다. 나는 분해가 잘되고 어쩌면 너무 좋을 것입니다. 아마도 그것들을 합쳐야 만합니다. 그러나 그것은 논리적으로 추악합니다. 그러나 나는 그 실천을 가정합니다. 하나는 유휴 시간이 지나면 키오스크 애플리케이션을 시작하는 타임 아웃 서비스이고, 다른 하나는 뷰 전환/네비게이션 서비스입니다. – Jordan