我想使用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实际上是实现的类名。