- 자원을 직접 명시하지 말고 의존 객체 주입을 사용하자2021년 03월 15일 11시 59분 44초에 업로드 된 글입니다.작성자: jCurve728x90반응형
많은 클래스가 하나 이상의 자원에 의존하는데, 사용하는 자원에 따라 동작이 달라지는 클래스에는 정적 유틸리티 클래스나 싱글턴 방식은 적합하지 않다.(final 한정자를 제거하고 다른 객체로 교체하는 메서드를 추가할 수 있지만, 오류를 내기 쉬우며 멀티스레트 환경에서 쓸 수 없다)
이런 클래스는 여러 자원 인스턴스를 지원해야 하며, 클라이언트가 원하는 자원을 사용해 한다.
이러한 방식을 만족하는 간단한 방식은 인스턴스 생성시 생성자에 필요한 자원을 넘겨주는 것이다.
이 방식은 자원이 몇 개든 의존 관계가 어떻든 상관없이 잘 동작하며, 불변을 보장하여 여러 클라이언트에서 의존 객체들을 안심하고 공유할 수 있다.
의존 객체 주입은 생성자,정적 팩터리, 빌더 모두에 똑같이 응용할 수 있다.
이 패턴의 쓸만한 변형으로는 생성자에 자원 팩터리를 넘겨주는 방식이 있다.
팩터리란 호출할 때마다 특정 타입의 인스턴스를 반복해서 만들어주는 개체를 말한다.(팩터리 메서드 패턴을 구현한 것)
의존 객체 주입이 유연성과 테스트 용이성을 개선해 준다.
반응형'JAVA' 카테고리의 다른 글
다 쓴 객체 참조를 해제하라 (0) 2021.03.28 불필요한 객체 생성을 피하자 (0) 2021.03.15 인스턴스화를 막으려거든 private 생성자를 사용하자 (0) 2021.03.15 private 생성자나 열거 타입으로 싱글턴임을 보증하자 (0) 2021.03.15 생성자에 매개변수가 많다면 빌더를 고려하라 (0) 2021.03.15 댓글