나는 약 DI과 DI in Angular.js을 읽었습니다.Angular.js - Javascript Dependency Injection
Angular.js의 DI는 Angular.js가 컨트롤러, 팩토리, 서비스 또는 기타에서 종속성을 만들 필요없이 종속성을 지정할 수 있음을 의미합니다.
질문은 : 어떤 점 의존성에서
- 은 내가 이것을 이해 어떻게 종속성이 사망하지 생성 된 곳으로 만들기, 생성되어야?
내가있는 경우 :
var thing = function(dep){ this.dep = dep || new depCreator(); }
이 사망입니까? 또는 함수에
dep
이 전달되었는지 여부에 따라 다릅니다.내가보기에 DI는 함수 나 객체에서 결국 의존성을 설정할 수 있음을 의미하지만 초기화/구성/데이터를 프로그램의 다른 부분 (논리 우리는)도 초기화 로직을 가질 수있다?
var dep1 = 'qwe'; var thing = function(dep){ this.dep = dep; } var diedThing = new thing(dep1);
이 예를 들어, 구성 파일에
dep1
을 설정할 수있다. DI를 구현하는 일반 자바 스크립트는경우 :
var thing = function(dep){ this.dep = dep; }
대신
의이 권리인가?var thing = function(){ this.dep = new depCreator(); }
그러나 depCreator가 구성 파일 (또는 압축을 푼 구성)에 의존하면이 파일은 DIed가됩니까?
DI가 Angular.js에 있음을 읽을 때,이 DI는 Angular.js가 나를 위해 의존성을 만들고 검색한다는 것을 의미한다고 생각하는 것이 맞습니까? 또 다른 의미가 있니?
마지막으로, DI가 너무 복잡하지만 구현 (또는 논리)에서 구성을 분리하는 것을 의미하는 이유는 무엇입니까? 즉, 메소드가 수행하는 것, 즉 구성이 구성 않습니다.
마지막으로, DI는 주관적인 개념으로, 일부 응용 프로그램에서 어떻게 책임을 분담하고 상상할 수 있습니까?
대단히 죄송합니다.
일반적으로 'DI'는 '참조를 전달하면 개체에서 사용할 수있는 모든 메서드를 가져옵니다.'라는 멋진 이름입니다. 이는 대리자 패턴과 비슷합니다. – zsong
DI의 종류는 단순히 함수의 형식 매개 변수를 의미있는 비 로컬 식별자로 사용하여 매개 변수 이름을 $ scope와 같은 공통 각도 객체의 속성과 비교합니다. 스니핑 된 모든 일치 항목은 함수를 호출하는 "apply() 배열"앞에 추가됩니다. – dandavis