Factory
-
결제 기능 - PaymentService에 구현체 주입하기프로젝트 2022. 4. 13. 22:23
프로젝트의 결제 서비스를 구현하는 도중 어려움에 직면해 현재 고민하고 있는 내용을 작성해보고자 한다. 위 그림을 보면 PaymentService를 인터페이스로 두고, 네 가지 결제 클래스가 해당 인터페이스를 구현하도록 되어 있다. 이전까지 다른 서비스를 작성할 때는 구체 클래스가 하나뿐이어서 괜찮았지만, 이번 결제 서비스는 이용자가 어떤 결제 수단을 선택하느냐에 따라 다른 타입의 결제 클래스를 주입해야 했다. 경험하지 못한 부분이어서 이것저것 책이나 다른 분들의 코드를 참고하기도 했고, 멘토님께도 약간의 도움을 받으며 PaymentService에 구체 타입을 주입하는 두 가지 방법을 적용해보기로 했다. 첫 번째는 Factory 클래스를 만들어 해당 클래스에서 구체 타입을 주입하는 방법이고, 두 번째는 C..