728x90
반응형
질문 : Inversion of Control이란 무엇입니까?
IoC (Inversion of Control)는 처음 발생했을 때 매우 혼란 스러울 수 있습니다.
답변
IoC (Inversion of Control) 및 DI (Dependency Injection) 패턴은 모두 코드에서 종속성을 제거하는 것입니다.
예를 들어 응용 프로그램에 텍스트 편집기 구성 요소가 있고 맞춤법 검사를 제공하려고한다고 가정합니다. 표준 코드는 다음과 같습니다.
public class TextEditor {
private SpellChecker checker;
public TextEditor() {
this.checker = new SpellChecker();
}
}
TextEditor
와 SpellChecker
사이에 종속성을 생성합니다. IoC 시나리오에서는 대신 다음과 같은 작업을 수행합니다.
public class TextEditor {
private IocSpellChecker checker;
public TextEditor(IocSpellChecker checker) {
this.checker = checker;
}
}
첫 번째 코드 예제에서는 SpellChecker
( this.checker = new SpellChecker();
TextEditor
SpellChecker
클래스에 직접 의존한다는 것을 의미합니다.
TextEditor
SpellChecker
종속성 클래스를 포함하여 추상화를 만듭니다 (클래스에서 종속성을 초기화하지 않음). 이를 통해 종속성을 호출 한 다음 다음과 같이 TextEditor 클래스에 전달할 수 있습니다.
SpellChecker sc = new SpellChecker(); // dependency
TextEditor textEditor = new TextEditor(sc);
TextEditor
클래스를 만드는 클라이언트 TextEditor
서명에 주입하기 때문에 사용할 SpellChecker
출처 : https://stackoverflow.com/questions/3058/what-is-inversion-of-control
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
.NET에서 C # 개체를 JSON 문자열로 바꾸는 방법 (0) | 2021.11.01 |
---|---|
두개의 list를 병렬로 반복하는 방법 (0) | 2021.11.01 |
Ruby에서 파일에 쓰는 방법 (0) | 2021.10.20 |
Excel interop 개체를 올바르게 정리하는 방법 (0) | 2021.10.14 |
Node.js에서 사용하지 않는 패키지를 제거하거나 정리하는 npm 명령 (0) | 2021.10.14 |