인프런 커뮤니티 질문&답변
해당 강의에서...
작성
·
220
2
해당강의내용은 앞서 설명했던.. (OCP원칙)을 깨는게 아닌가요??
예를들면,
@Component
FixDiscountPolicy { ... }
@Component
RateDiscountPolicy {...}
이경우 DiscountPolicy라는 타입으로 빈을 찾게되면 오류가 나기때문에 해당 강의에서 3가지 방법을 제공했고,
만약 RateDiscountPolicy를 사용하려면
@Component
@Primary
RateDiscountPolicy {...}
이렇게 코드 수정을 해야하고, 다시 Fix를 사용하기위해선 Rate의 @Primary를 지우고, Fix에 가서 @Primary를 붙여줘야겠죠.
이것또한 구현객체의 코드수정인데, 이부분은 OCP원칙을 꺠는것이 아닌건가요?
퀴즈
필드 주입(Field Injection) 방식이 일반적으로 권장되지 않는 이유는 무엇일까요?
불변성을 보장하기 어려워서
의존성 변경이 쉬워서
순수 Java 코드로 테스트하기 어려워서
설정 코드 작성이 복잡해서
답변 1
2
김영한
지식공유자
안녕하세요. 김진영님
이것이 바로 트레이드 오프입니다.
애노테이션을 사용하면 편리하지만, 이런 변경이 있을 때 해당 클래스 자체를 수정해야 하는 단점이 있습니다.
감사합니다.





