我想使用RabbitMQ並基於不同的消息,應該調用不同的實現。RabbitMQ - 根據不同的條件調用不同的實現
我將消息格式設置爲JSON,並且有一個「callType」字段,它的值是類名實現的通用接口。例如,所有的實現都實現了接口「任務」,並且我實現了「TaskImp1」,「TaskImp2」,「TaskImp3」。
因此,代碼應該像
if (callType=="TaskImp1")
((Task)TaskImp1).runTask()
if (callType=="TaskImp2")
((Task)TaskImp2).runTask()
if (callType=="TaskImp3")
((Task)TaskImp3).runTask()
但可以把它變得更加靈活?如果稍後我開發一個新的「TaskImp4」,我不想更改調用代碼,是否有可能讓java自動選擇正確的實現,因爲callType實際上是實現的類名。