Программа, над которой я работаю, имеет распределенную архитектуру, точнее шаблон брокера-агента. Брокер отправит сообщения своему соответствующему агенту, чтобы сообщить агенту выполнить задачу. Каждое отправленное сообщение содержит информацию о целевой задаче (имя задачи, свойства конфигурации, необходимые для выполнения задачи и т. Д.). В моем коде каждая задача на стороне агента реализуется в отдельном классе. Как:Лучшая практика для связывания создания экземпляра класса сообщения и целевого класса
public class Task1 {}
public class Task2 {}
public class Task3 {}
...
сообщения в формате JSON, как:
{
"taskName": "Task1", // put the class name here
"config": {
}
}
Так что мне нужно, чтобы связать сообщение, посланное от брокера с правильной задачи в стороне агента.
Я знаю один способ поставить имя класса целевой задачи в сообщении, так что агент может создать экземпляр этого класса задач по имени задачи, извлеченное из сообщения с помощью отражений, как:
Class.forName(className).getConstructor(String.class).newInstance(arg);
Я хочу знать, какая наилучшая практика для реализации этой ассоциации. Количество задач растет, и я думаю, что написать строку легко, чтобы делать ошибки и не просто поддерживать.
Очень информативный ответ! Простой пример кода и рекомендуемые статьи! Натуральное заводское решение достаточно простое, что я предпочитаю.У меня есть около 4 типов задач, в которых каждый тип имеет одну и ту же конфигурацию задач. В каждом типе имеется около 4-5 точных задач. Таким образом, общее количество задач относительно велико. – qingl97