스프링 삼각형과 설정 정보
IOC/DI - 제어의 역전/의존성 주입
프로그래밍에서 의존성이란?
운전자가 자동차를 생산한다.
자동차는 내부적으로 타이어를 생산한다.
Java
new Car();
Car 객체 생성자에서 new Tire();
Car가 Tire에 의존한다.
의존하는 객체(전체)와 의존되는 객체(부분) 사이에 집합 관계(aggregation)과 구성 관계(Composition)으로 구분할 수 있다.
집합 관계 : 부분이 전체와 다른 생명 주기를 가질 수 있다.
예 : 집 vs 냉장고
구성 관계 : 부분은 전체와 같은 생명 주기를 갖는다.
예 : 사람 vs 심장
public class Car {
Tire tire;
public Car() {
tire = new KoreaTire();
//tire = new AmericaTire();
}
}
//의존성 주입 받게 개선
public class Car {
Tire tire;
public Car(Tire tire) {
this.tire = tire;
}
}
public class Driver {
public static void main(String[] args) {
Tire tire = new KoreaTIre();
// Tire tire = new AmericaTire();
Car car = new Car(tire);
}
}
Car는 tire를 외부에서 주입받음으로써 타이어의 변경에 따라 코드가 변경되지 않아도 된다.
Last updated