[최범균님] 객체지향과 디자인 패턴 : DI
in 책과 강연 on 최범균님 디자인 패턴
어플리케이션 영역과 메인 영역
- 서비스 로케이터 방식에는 몇 가지 단점이 있기 때문에 사용할 객체를 주입하는
DI
하는 방식을 사용하는 것이다
DI(Dependency Injection)을 이용한 의존 객체 사용
인터페이스등으로 파라미터로 객체를 받아서 내부에 set
하는 방식
public FoodStore(Order order) {
this.order = order;
}
생성자 방식과 설정 메서드 방식
- 생성자 방식 : 의미 그대로이다
- 설정 메서드 방식 : 수정자 (
setter
) 를 이용하는 방식
이때 설정 메서드를 이용할 떄 메서드 체이닝이 가능하게 하여도 무방
new Worker()
.setJobQueue(new XXXJobQueue())
.setTranscoder(new Transcoder());
필자가 생각하는 장단점
생성자 방식을 더 선호한다
생성자를 이용해서 필요한 모든 의존 객체를 전달받기 때문에 의존객체가 정상적인지 확인할 수 있다
DI와 테스트
- DI를 이용하면 테스트를 이용하기가 용이하다, (로케이터는 해당 로케이터를 수정해야 한다)
스프링 프레임 워크 예
서비스 로케이터를 이용한 의존 객체 사용
-