내 첫 번째 게시물이 너무 안녕하세요 :)소프트웨어 설계 : DI - 다중 어셈블리 + 비공개 유형
계단 패턴을 사용하고 있습니다. I은 할 어셈블리 A - 어셈블리 B에서 정의 된 인터페이스의 구현을 포함하는 어셈블리 B (인터페이스를 포함 함) 및 어셈블리 C에 따라 (엔트리 포인트 조성물 루트) -> B < - C
을 C#에서 개발 중이며 IoC 용 Castle Windsor를 사용하고 있습니다.
저는 또한 비공식 유형 (https://github.com/castleproject/Windsor/blob/master/docs/registering-components-by-conventions.md -> 비공개 유형 등록)을 등록 할 수있는 Windsor의 기능을 활용하고 있습니다. 어셈블리 C의 클래스를 내부 클래스로 정의하면 누구도 C에서 A와 직접적인 의존 관계를 만들 수 없으므로 유용하다는 것을 알았습니다. A와 C 모두 어셈블리 B에만 의존합니다. 어셈블리 B에는 나에게 맞는 소리 만 들어 있습니다.
이것이 좋은 디자인 선택이라면 궁금합니다. 내가 아는 한 Windsor 만 비공개 형식을 등록 할 수 있으며 비공식 형식을 공개하지 않기 때문에 경고합니다. 또한이 고려 사항은 .NET 환경에 국한되지 않는다고 생각합니다. 사용하는 기술에 관계없이이 문제에 대한 통찰력을 높이 평가할 것입니다. :)
내부 형식이있는 각 어셈블리의 모듈을 사용하여 Autofac과 동일한 작업을 수행했습니다. 메인 (엔트리) 어셈블리는 등록해야하는 모듈 (예 : 전자 메일 모듈 등)을 인식하고 있습니다 (예 : 전자 메일 모듈 등) – Bishoy