spring - multiple implements : interface - 인터페이스의 구현체를 동적으로 선택하는 방법

동기

본 글은 interface 란? spring 주입받아 사용하기 에서 이어집니다.

동적으로 구현체를 선택하는 방법을 알아보자

여러 판매자가 판매하는 상품을 장바구니에 담고 결제를 하였다고 가정해보자.
각 판매자에게 구입 요청을 해야할것이다.

이때 판매자에게 할수 있는 행위들이 interface로 정의되어있고, 실제로 요청해야하는 판매자에 따라서 구현체를 바꾸어야한다면?? 어떻게 될까? 예시를 확인해보자

ex)

1
2
3
라면 + 노트북을 장바구니에넣고 한번에 주문 -> 내부적으로는 오뚜기 / LG전자에 구매 요청을 해야야한다
주문, 주문취소, 환불이라는 행위자체는 동일하지만 요청해야하는 도메인정보등 세부정보는 다를것이다
그리고 이공통점을 판매자라는 인터페이스로, 달라지는 세부적인 부분을 오뚜기/LG전자라는 구현체로 구현했다면?

각 판매자에 해당하는 구현체를 선택하여 요청 로직을 실행해야할것이다.

Read more