티스토리 뷰

반응형

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

객체 지향적인 설계를 하다보면 유연성이 높을 수록 좋다.
하지만 특정 객체를 하나의 클래스에서 소유해버린다면 그 것은 매우 유연하지 못할 것이다.

public class SweetPizza{
    private Source source = new TomatoSource();

    // blah
}

예를 들어 다음과 같이 sweetpizza의 재료로 토마토 소스를 사용해야 한다고, 다음처럼 넣어주면 나중에 래시피가 바껴서 재료가 바뀐다면
sweet pizza의 소스코드 수정이 불가피 할 것이다.
지금은 간단한 예이지만 복잡해지면 여기저기 소스코드 수정할 곳을 찾는 것도 머리가 아프다.

따라서 이것을 의존 객체 주입을 통해서 해결해 줄 수 있다.

public class SweetPizza{
    private final source;

    public SweetPizza(Source source){
        this.source = source;
    }
}

다음과 같이 생성자를 주입받는 다면 조금 더 유연한 소스코드 작성이 가능할 것이다.

 

참고로 이것이 spring의 메인이 되는 bean 객체를 삽입하는 과정이 이렇게 쓰인다.
한발 더 나아가 중계 객체(AppConfig)를 두어서 조금 더 유연하게 설계하도록 되어 있다.
728x90
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
250x250