public interface Oracle {
    String defineMeaningOfLife();
}
public class BookwormOracle implements Oracle{
    private Encyclopedias encyclopedias;

    public void setEncyclopedias(Encyclopedias encyclopedias) {
        this.encyclopedias = encyclopedias;
    }

    @Override
    public String defineMeaningOfLife() {
        return "Encyclopedias are a waste of money - go see the world instead";
    }
}

BookwormOracle.javainterface Oracle 을 구현했을 뿐만 아니라 의존성 주입을 위한 수정자도 정의했다.
구현 클래스 각각이 자신의 의존성을 각자 정의하고, 비즈니스 인터페이스에서는 비즈니스 메서드만 유지해야한다.

만약 인터페이스에 setEncyclopedias 같은 의존성 주입 메서드를 정의한다면, 해당 인터페이스의 모든 구현체가 encyclopedias 의존성을 사용하거나 최소한 인지하도록 강제하는 것. 유연성이 떨어진다.

'JAVA > SPRING' 카테고리의 다른 글

HTTP2로 요청을 보내보자  (0) 2020.01.29
ResourceLoader  (2) 2020.01.22
@PathVariable  (0) 2019.10.20
@RequestMapping의 value 패턴.  (0) 2019.10.19
[SPRING SECURITY] ignoring() - 필터에서 벗어나보자  (0) 2019.10.18

+ Recent posts