한마디 : 아니다.
더 많은 단어 : 의존성 주입은 정확히입니다. 다른 개체가 의존하는 리소스를 소개하지만 다른 소스에서 복잡한 세부 정보를 알 수없는 방법입니다. DI를 사용한다고해서 프로그램에서 NOTHING이 다른 객체를 만드는 방법을 알아야한다는 것은 아닙니다. 사실, 나는 사소하지 않은 프로그램이 "새로운"키워드 (또는 리플렉션 기반 대안)를 완전히 피하는 것은 불가능하다고 주장한다. 그러나 DI는이 개체를 다른 개체와 밀접하게 연결하는 많은 종속성을 필요로하는 복잡한 개체를 만드는 방법을 알 필요가없는 개체는 이러한 밀접한 커플 링 지식을 모두 가지고 있지 않아야한다는 것을 의미합니다.
저는 O / O 소프트웨어 디자인의 두 가지 주요 이론 인 GRASP와 SOLID를 연구 할 것입니다. GRASP는 객체의 목적을 연구하고 "이 객체가 다른 유형의 새 객체를 생성해야합니까?이 객체의"작업 설명 "부분입니까?"라고 스스로에게 묻습니다. SOLID는 한 걸음 더 나아갑니다. "S"는 "단일 책임 원칙"을 나타내며, 이는 개체에 하나의 작업이 있어야하며 프로그램에서 해당 특정 작업을 수행하는 유일한 개체 여야한다는 것을 명확하게 나타냅니다.
따라서 GRASP는 일반적으로 이러한 새 객체를 생성하는 기존 클래스를 살펴보고 원하는 수준의 "응집력"을 유지하면서이 객체를 생성하는 작업이 이미 수행 한 작업에 적합한 클래스를 찾는 것이 좋습니다. SOLID는 응집력이 핵심임을 알려줍니다. 이러한 객체를 만드는 작업은 클래스에 주입해야하는 일부 팩토리에 제공되어야합니다. 프로그램의 복잡성이 계속 증가함에 따라 리팩토링하려는 의지와 함께 이러한 방법 중 하나를 준수하면 매우 유사한 아키텍처가 생성 될 것입니다.