MVVMCross에서 하위 컨테이너를 사용하면 특히 복잡한 응용 분야의 종속성 관리에 몇 가지 이점이 있습니다. 주요 장점은 다음과 같습니다.
종속성 관리의 유연성
하위 컨테이너를 사용하면 앱 전체 컨테이너에 영향을 미치지 않고 특정 목적으로 인스턴스 또는 유형을 등록 할 수 있습니다. 즉, 응용 프로그램의 다른 부분에 대한 서비스 또는 인터페이스의 다른 구현을 가질 수 있습니다. 이는 특정 기능 또는 세션에 대한 종속성을 분리 해야하는 시나리오에서 특히 유용합니다 [1] [4].
종속성의 분리
하위 컨테이너를 사용하면 수명이 제한되어 있거나 특정 컨텍스트와 관련된 종속성을 분리 할 수 있습니다. 이것은 깨끗하고 체계적인 종속성 구조를 유지하는 데 도움이되므로 응용 프로그램을보다 쉽게 관리하고 디버깅 할 수 있습니다 [1] [4].
의존성 상속
각 어린이 컨테이너는 부모 컨테이너에 등록 된 모든 종속성을 상속합니다. 이를 통해 응용 프로그램의 다른 부분에서 공통 서비스에 대한 등록을 복제 할 필요가 없습니다. 대신, 아동 컨테이너의 범위에 필요한 특정 종속성 만 등록하는 데 집중할 수 있습니다 [1] [4].
깊은 둥지
MVVMCross를 사용하면 필요에 따라 깊고 중첩 된 어린이 용기를 만들 수 있습니다. 이 유연성은 기본 응용 프로그램의 종속성을 방해하지 않고 다른 모듈이나 기능이 고유 한 종속성 세트를 요구하는 복잡한 애플리케이션에서 유리합니다 [1] [4].
단순화 된 테스트
하위 컨테이너를 사용하면 특정 테스트 시나리오의 종속성을 쉽게 조롱하거나 교체 할 수있어 테스트를 단순화 할 수 있습니다. 이 격리는 전체 응용 프로그램의 종속성 구조에 영향을 미치지 않으면 서보다 집중된 단위 테스트를 작성하는 데 도움이됩니다 [5].
개선 된 모듈성
어린이 용기는 더 세밀하게 의존성을 관리 할 수있게하여 모듈성을 촉진합니다. 이 모듈성은 다른 플랫폼마다 다른 서비스 또는 인터페이스 구현이 필요할 수있는 크로스 플랫폼 개발에 중요합니다 [5] [7].
전반적으로 MVVMCross의 아동 컨테이너는 복잡한 응용 프로그램의 종속성을 관리하고 유연성, 모듈성 및 유지 관리를 향상시키는 강력한 도구를 제공합니다.
인용 :[1] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[2] https://canbilgin.wordpress.com/2017/02/26/developing-universalcross-platform-apps-with-mvvm-vii/
[3] https://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison
[4] https://www.mvvmcross.com/mvvmcross-6.0.0-release/
[5] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[6] https://github.com/aalice072/mvvmcross/blob/master/changelog.md
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://livebook.manning.com/book/xamarin-in-action/chapter-4/
[9] https://stackoverflow.com/questions/16514691/child-containers-in-mvvmcross-ioc