인프런 커뮤니티 질문&답변

이재윤님의 프로필 이미지
이재윤

작성한 질문수

스프링 핵심 원리 - 기본편

조회한 빈이 모두 필요할 때, List, Map

OCP 위반인지 여쭤봅니다

작성

·

197

1

안녕하세요 선생님, 강의 듣고나서 궁금한 점이 생겨 여쭤봅니다. 

int discountPrice = discountService.discount(member, 10000, "fixDiscountPolicy");

int rateDiscountPrice = discountService.discount(member, 20000, "rateDiscountPolicy");

이렇게 호출하게 되면 결국 구현체의 빈 이름을 명시하게 된 것이라고 이해되는데, 추후 빈의 이름이 변경되거나 하는 등의 사항이 발생하면 클라이언트에도 영향이 미치기 때문에 OCP 위반이라고 볼 수 있는건가요 ??  혹시 그렇다면 , 이건 여러개의 구현체 중 하나를 골라야하는 상황이기 때문에 어쩔 수 없다고 생각하면 되는건가요 ?? 

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 재윤님

핵심은 향후 기능의 변경이 있을 때 클라이언트 코드에 변경이 발생하는가 입니다.

여기서 DiscountPolicy를 호출하는 클라이언트 코드가 DiscountService이기 때문에 OCP를 위반하지는 않습니다.

감사합니다.

이재윤님의 프로필 이미지
이재윤

작성한 질문수

질문하기