본문 바로가기
Java

[Effective Java] Item5 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라

by 신입같은 3년차 2020. 12. 10.

Item5 같은 경우는 Spring 개발을 하는 개발자라면 누구나 알만한 내용이라고 생각합니다.
따라서 간단하게 중요한 내용만 정리하고 넘어가도록 하겠습니다.

의존 객체 주입에 대해 처음 접해보시는분들은 다른 클래스의 자원을 사용하기위해
해당 클래스에 static 또는 final 클래스를 사용하여 객체를 생성해줄것입니다.

하지만 이럴경우 확장성에 용이 하지도 않을 뿐더러 하나의 기능에 종속되게 됩니다.

그러면 final을 때고 변경가능한 메서드를 추가해서 넣어주면 되는거 아닐까?? 란 생각을 할수 있지만 이방식은 멀티스레드 환경에서는 쓸수 없다 . 자원에 따라 동작이 달라지는 클래스에는 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않는다고 합니다.

그러면 어떻게 의존 객체 주입을 해야할까요

그건 바로 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 방식 입니다.

반응형

댓글