[최범균님] 객체지향과 디자인 패턴 : DI

어플리케이션 영역과 메인 영역

  • 서비스 로케이터 방식에는 몇 가지 단점이 있기 때문에 사용할 객체를 주입하는 DI하는 방식을 사용하는 것이다

DI(Dependency Injection)을 이용한 의존 객체 사용

인터페이스등으로 파라미터로 객체를 받아서 내부에 set 하는 방식

public FoodStore(Order order) {
  this.order = order;
}

생성자 방식과 설정 메서드 방식

  • 생성자 방식 : 의미 그대로이다
  • 설정 메서드 방식 : 수정자 (setter) 를 이용하는 방식

이때 설정 메서드를 이용할 떄 메서드 체이닝이 가능하게 하여도 무방

new Worker()
  .setJobQueue(new XXXJobQueue())
  .setTranscoder(new Transcoder());

필자가 생각하는 장단점

생성자 방식을 더 선호한다

생성자를 이용해서 필요한 모든 의존 객체를 전달받기 때문에 의존객체가 정상적인지 확인할 수 있다

DI와 테스트

  • DI를 이용하면 테스트를 이용하기가 용이하다, (로케이터는 해당 로케이터를 수정해야 한다)

스프링 프레임 워크 예

서비스 로케이터를 이용한 의존 객체 사용

-




© 2020.12. by 따라쟁이

Powered by philz