다단계 Castle Windsor 애플리케이션에서 개체를 등록하는 가장 좋은 장소와 방법
Castle Windsor를 다계층 구조(예: 데이터 액세스 계층, 비즈니스 로직 계층, 애플리케이션 계층 등)의 애플리케이션에 통합할 때 Windsor의 개체 등록 설계를 신중하게 고려하는 것이 중요합니다. 문제는 누가 객체 등록을 책임져야 하느냐는 것입니다.
객체 등록 설계 계획
추천방법 : 조합뿌리
최대한의 모듈성과 느슨한 결합을 달성하려면 모든 애플리케이션 구성 요소를 가능한 한 늦게 구성해야 합니다. 실제로 이는 애플리케이션 루트에서 컨테이너를 구성하는 것을 의미합니다.
Main
방법 Global.asax
ServiceHostFactory
컨테이너는 컴포지션 엔진 역할을 하고 애플리케이션 루트는 컴포지션 루트 역할을 합니다. 이렇게 하면 불필요한 단위 테스트 없이 애플리케이션이 간단한 실행 파일로 유지됩니다.
컨테이너 없이 테스트
테스트에서는 컨테이너에 의존해서는 안 됩니다. 대신, 개체와 모듈은 컨테이너에 구애받지 않도록 설계되어야 합니다. 단위 테스트는 이러한 구성 요소에 대한 테스트 더블을 직접 제공할 수 있습니다.
Windsor 설치 프로그램은
패키지에 사용됩니다.Windsor에서는 IWindsorInstaller
을 구현하는 설치 프로그램에 구성 요소 등록 논리를 캡슐화할 수 있습니다. 자세한 내용은 Windsor 문서를 참고하세요.
위 내용은 최적의 설계 및 테스트 가능성을 위해 다층 Castle Windsor 애플리케이션에서 객체를 어디에 등록해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!