-
|
빈이 여러개 존재할 시 @Autowired
private DiscountPolicy rateDiscountPolicy클라이언트 코드에 필드 주입으로 직접적으로 하위타입의 빈 이름을 명시해서 구체화할 수 있습니다.
@Autowired
public OrderServiceImpl(MemberRepository memberRepository,
@Qualifier("mainDiscountPolicy") DiscountPolicy
discountPolicy) {
이렇게 두가지 케이스의 경우 OCP 위반이 아닌가 생각이 드는데 다른 분들 생각은 어떤지 질문 드립니다. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
저도 위의 두 가지 케이스의 경우 OCP 원칙을 위반한다고 생각합니다. 아래의 링크는 팩토리 메소드에 대해 잘 나와있는 것 같아서 공유합니당 |
Beta Was this translation helpful? Give feedback.
저도 위의 두 가지 케이스의 경우 OCP 원칙을 위반한다고 생각합니다.
제 생각에는
@Qulifier를 사용 할 경우 특정 이름을 넣어주는 것 이기에 OCP 원칙을 지키기 어렵다고 생각이 듭니다.강의에서 나왔듯이
@Primary를 사용하여 우선순위를 부여하는 방법이 있을 것 같습니다.또는 팩토리 메소드를 사용하여 의존성을 주입 받는 방법이 있을 것 같습니다.
혹시나 내용에 틀린 부분이 있다면 피드백 해주세요 !! ;)
아래의 링크는 팩토리 메소드에 대해 잘 나와있는 것 같아서 공유합니당
https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9CFactory-Method-%ED%8C%A8%ED%84%B4-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90