문제

나는 새로운 종속성을 주입하고 있었는 질문/도 지도를 필요로 한다.

가 사용하는 응용 프로그램 패턴을 저장소를 위한 데이터에 액세스 할 수 있습니다.내가 사용하는 StructureMap 하는 올바른 저장소 및 모니다.

내가 있기 때문에 깨진 내 모델(을 포함하여 저장소에는 논리)그 자체로 어셈블리에 추가 서비스층이다.관심에서의 디스 레이어 클래스는 irepository 를 에서 그것의 생성자입니다.이것은 잘못을 저에게 이제는 모든 소비자의 모델에 대해 알 필요가 저장소(적어도 구성이 그들의 디을 알고 하나를 사용하여).나는 것 같은 느낌을 얻으로 용기의 모델입니다.

소리가 무엇이 잘못된 이?

도움이 되었습니까?

해결책

로 작성된 응용 프로그램을 사용하여 주입에 의존으로 구성하는 단일 컨테이너스는 모든 인터페이스/구현 유형 매핑을 등록되어 있습에 초기 단계에의 응용 프로그램.이 포함됩의 등록을 저장소,서비스,그리고 어떤 소비자의 범위 내에서 서비스합니다.

에 의해 해결하는 소비자의 서비스를 통해 컨테이너,소비자 만들에 대한 의존성 서비스하지 않는 모든 종속성 서비스 수 있습니다.따라서,소비자의 서비스와 결합되지 않습니다 그 종속성(예:귀하의 저장소에).이것은 혜택을 주입 의존성을 통해 컨테이너 반대로 이렇게 수동 종속성을 주입입니다.

을 디자인하는 경우에는 서비스에서 사용하는 다른 응용 프로그램의 형태에서 재사용할 수 있는 라이브러리 다음 옵션에 따라 달라질 수준의 유연성을 소원을 제공합니다.

는 경우 추정의 모든 클라이언트 라이브러리를 사용하는 것입 의존성 주입,다음을 제공해야 합니다 적절한 금액에 대한 문서 유형을 등록해야 내에서 자신의 컨테이너입니다.

는 경우 추정의 모든 클라이언트를 사용하여 특정한 용기(StructureMap),다음을 쉽게 할 수 있습 등록 요구 사항을 제공하여 레지스트리 캡슐화하는 모든 보시려 등록에 필요한 클라이언트입니다.

당신이 원하는 경우 할 수 있도록 라이브러리에 의해 사용되는 클라이언트를 사용하지 않는 자신의 종속성을 주입 컨테이너 당신을 제공할 수 있는 정적 공장에 반환하는 서비스입니다.의 수준에 따라 복잡도 이런 시나리오를 필요로하지 않을 수 있습의 컨테이너(예를 들어,귀하의 서비스를 구성하여 단 몇 개체 모두에서).당신의 라이브러리의 구성이 상당한 금액의 구성 요소를 할 필요가로 구성된 다음을 수 있는 공장 해결 서비스를 통해 자신의 공유된 내부 인프라 초기화 필요합니다.

다른 팁

이해 당신의 딜레마가 단,너무 많은 시간을 보냈는 레슬링을 통해 내 마음입니다.내가 믿는 방법은 내가 결정을 앞으로 하나의 방법으로 캡슐화하는 모두의 관심사 그리고 아직도 유지 보수가 쉽게 느슨하게 결합체입니다.

이 블로그 게시물에 대해 구체적으로 NHiberante 하지만 보면서 저장소에서 패턴을 구현 쉽게 변경할 수 있습니다 NH 특정 코드를 사용하 backingstore.

을 만드는 일반적이 일반적이고 확장 가능한 NHiberate 저장소

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top