Как выставить динамический список вызовов методов в Java? - PullRequest
1 голос
/ 17 апреля 2011

Как бы вы предложили перейти к реализации следующего сценария.У меня есть несколько мыслей, но ни одна из них не удовлетворяет моей проблеме в целом, поэтому я хотел бы получить ваш вклад.

Я создаю тип приложения рабочего процесса.Пользователь создает последовательность действий, которые затем должны быть выполнены.Проблема, с которой я сталкиваюсь, заключается в следующем.Каждый «виджет» в конвейере должен определять, что он может принимать как ввод, и что он будет производить как вывод.Он может принимать любое количество входных «потоков», а также создавать несколько «потоков» выходных данных.Теперь проблема возникает.Это надо по динамике.Например, кто-то должен иметь возможность написать плагин для приложения, в котором он определяет свой собственный виджет с входами и выходами.Но другие виджеты должны иметь возможность подключаться к нему, чтобы они могли отправлять свои выходные данные на новый или получать от него входные данные.

Как следует сначала разоблачить список допустимых входных и выходных данныхи, во-вторых, как я могу рассчитать, какой метод вызывать на виджете.Например, если я хочу отправить вывод из моего виджета в новый, мне нужно иметь возможность рассчитать , если есть приемлемый метод получения (в этом случае их может быть больше одного), и, во-вторых,Мне нужно знать метод вызова для передачи данных.

Я рассмотрел закрытие, делегатов и т. Д., Которые, кажется, могут делать то, что мне нужно.Просто думал, что сначала получу больше информации.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Я бы посоветовал вам обеспечить, чтобы все ваши компоненты реализовывали один или несколько интерфейсов, позволяя другим компонентам и инфраструктуре использовать эти интерфейсы для опроса компонента о том, что он может отправлять и что он может получать.

Этосделает ваш код более надежным и потребует меньше магии для работы.

1 голос
/ 17 апреля 2011

Посмотрите на управляемые сообщениями архитектуры и Mule ESB.

...