[JAVA]Dependency Injection(DI)

정연진·2021년 4월 6일
0

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를 통해 객체를 바꿔 넣을 수 있다.

profile
열공해욧

0개의 댓글