[JAVA]Dependency Injection(DI)
Dependency Injection(DI)
Dependency Injection을 번역하면 종속성 주입이라고 한다.
코드로 보자면
public class ExamConsole {
private Exam exam;
public void print() {
System.out.println("--------------------------");
System.out.println("성적출력");
System.out.println("--------------------------");
System.out.printf("kor : %d\n",exam.getKor());
System.out.printf("eng : %d\n",exam.getEng());
System.out.printf("math : %d\n",exam.getMath());
System.out.printf("total : %d\n",exam.total());
System.out.printf("avg : %d\n",exam.avg());
}
}
Exam 객체를 변수로 사용하는 ExamConsole 클래스가 있다.
한 클래스에서 다른 클래스의 객체를 부품으로 사용하는 것을 Dependency라고 한다.
그렇다면 그 부품을 Injection 시켜주는 방법에는 두 가지가 있다.
Constructor DI
Exam exam = new Exam(1,1,1);
ExamConsole console = new ExamConsole(exam);
생성자를 통해 Exam 객체를 Injection 해주었다. (주입, 꽂아넣음)
이 경우 처음 주입한 Exam 객체를 계~속 사용하며 바꿀 수 없다.
왜냐면 생성자는 한 번만 부를 수 있으니까!
Setter DI
Exam exam = new Exam(1,1,1);
ExamConsole console = new ExamConsole();
console.setExam(exam);
Setter 함수를 통해 Exam 객체를 Injection 해주었다.
이 경우 Setter를 통해 객체를 바꿔 넣을 수 있다.
Author And Source
이 문제에 관하여([JAVA]Dependency Injection(DI)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@duswls3913/JAVADependency-InjectionDI저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)