해결된 질문
작성
·
195
·
수정됨
0
@Autowired 필드 명, @Qualifier, @Primary
강의 부분에서 궁금한 점이 생겼습니다.
결국에 조회 빈이 2개 이상인 경우엔 위의 어노테이션을 활용해서 우선순위를 지정해준다고 되어있는데,
필드명을 수정해주거나, Qualifier의 이름을 변경해야하는 상황이 생긴다면
( ex) OrderServiceImpl의 discountPolicy를 fixDiscountPolicy 에서 rateDiscountPolicy 로 할인 정책을 변경하고 싶다면)
직접 구현체들(클라이언트 코드)을 수정해줘야하는데
( ex) Autowired 된 DiscountPolicy의 변수명을 수정하거나, @Qualifier의 이름을 수정해서)
이는 OCP 원칙에서 위배되는 것은 아닌지 궁금합니다.
나아가 이런식으로 실제 구현체를 수정해줘야하는 것이라면 discountPolicy 의 타입명만 DiscountPolicy일 뿐이지, 타입명 자체를 FixDiscountPolicy 로 지정하거나 RateDiscountPolicy로 지정해서 사용하는 DIP 위반하는 코드들과 무슨 차이인지 잘 모르겠습니다.
순수 자바 코드 자체는 해당 원칙들을 지키고 있는 것이니까 상관없는것인가요?
안녕하세요. 알잘딱님, 공식 서포터즈 코즈위버입니다.
스스로 잘 해결하셨습니다 :)