RabbitMQ를 사용하려고하고 다른 메시지를 기반으로 여러 가지 도구를 호출해야합니다.RabbitMQ - 다른 조건에 따라 다른 구현 호출
메시지 형식을 JSON으로 설정하고 "callType"필드가 있고, 그 값은 공통 인터페이스를 구현하는 클래스 이름입니다. 예를 들어 모든 구현에는 인터페이스 "Task"가 구현되어 있고 "TaskImp1", "TaskImp2", "TaskImp3"구현이 있습니다.
그래서 코드는if (callType=="TaskImp1")
((Task)TaskImp1).runTask()
if (callType=="TaskImp2")
((Task)TaskImp2).runTask()
if (callType=="TaskImp3")
((Task)TaskImp3).runTask()
처럼해야하지만 더 유연 할 수 있을까? 나중에 새 "TaskImp4"를 개발하면 호출 코드를 변경하고 싶지 않습니다. callType이 실제로 구현의 클래스 이름이므로 자바가 자동으로 올바른 구현을 선택하게 할 수 있습니까?