Dependency Injection과 IoC Containers에 대해 이야기 할 계획이며 그것을 사용하기위한 좋은 주장을 찾고 있습니다.
이 기술과 이러한 도구를 사용하면 가장 중요한 이점은 무엇입니까?
Dependency Injection과 IoC Containers에 대해 이야기 할 계획이며 그것을 사용하기위한 좋은 주장을 찾고 있습니다.
이 기술과 이러한 도구를 사용하면 가장 중요한 이점은 무엇입니까?
답변:
저에게있어 가장 중요한 것은 단일 책임 원칙을 쉽게 따르는 것 입니다.
DI / IoC를 사용하면 개체 간 종속성을 간단하게 관리 할 수 있습니다. 따라서 일관성있는 기능을 자체 계약 (인터페이스)으로 쉽게 분리 할 수 있습니다. 결과적으로 DI / IoC에 대해 배운 후 코드가 훨씬 모듈화되었습니다.
이것의 또 다른 결과는 Open-Closed Principle 을 지원하는 디자인을 훨씬 쉽게 이해할 수 있다는 것 입니다. 이것은 가장 자신감있는 기술 중 하나입니다 (자동 테스트에 이어 두 번째). 공개 폐쇄 원칙의 미덕을 충분히 옹호 할 수 있을지 의심됩니다.
DI / IoC는 저의 프로그래밍 경력에서 "게임 체인저"가 된 몇 안되는 것들 중 하나입니다. 가 큰 내가 전에 & DI / IOC의 학습 후 작성한 코드 사이에 품질 차이는. 좀 더 강조하겠습니다. 거대한 코드 품질 개선.
실제 혜택은 기술적 인 것보다 정치적이라고 생각합니다. DI는 단순히 서비스 로케이터 패턴 의 대안 일뿐 입니다. 그 자체로는 SRP 또는 OCP와 같은 원칙을 따르거나 계층을 분리하기가 쉽지 않습니다. 다른 응답자들은 다른 개념과 기술, IMO를 혼동하고 있습니다.
Service Locator를 사용하거나 적용 가능할 때마다 (대부분의 경우) 직접 종속성을 인스턴스화하여 높은 응집력 및 낮은 결합과 동일한 목표를 달성 할 수 있습니다.
이제 저는 많은 사람들이이 의견에 동의하지 않을 것임을 알고 있습니다. 구체적인 예를 논의하게되어 기쁩니다.
DI가 테스트 목적으로 내부 물체를 노출시키는 데 사용될 때 패턴이 남용되었습니다.