У меня есть 2 настольных приложения, которые я хочу интегрировать с внешними приложениями. Одно из приложений дополнено плагинами, разработанными мной, чтобы обеспечить специфические функции, которые не являются общими для всех дистрибутивов. Ситуацию можно описать на следующей диаграмме:
альтернативный текст http://img32.imageshack.us/img32/8902/integration1.png
Как я уже говорил, я хочу интегрировать (получать и отправлять данные) свои приложения с внешними приложениями или SDK. Обычно существует 2 типа данных из внешних приложений:
- Общие / Общие данные - которые всегда актуальны
- Конкретные данные - которые должны обрабатываться по-разному для каждого внешнего приложения
В «Базовом приложении» требуемая ситуация может описываться на этой диаграмме:
альтернативный текст http://img32.imageshack.us/img32/3299/integration2.png
Общие данные обрабатываются в базовом приложении, а конкретные данные обрабатываются в плагинах (вспомогательных плагинах).
Распространение этого приложения может быть одним из
- Базовое приложение + приложение Yakko + интегратор приложений Yakko + плагин поддержки приложения Yakko
- Базовое приложение + Dot App + Интегратор Dot App
Для другого приложения я хочу оставить те же «Интеграторы», но по-разному обрабатывать их внутри приложения:
альтернативный текст http://img32.imageshack.us/img32/2088/integration3x.png
Как бы вы порекомендовали реализовать поддержку в моих приложениях для интеграции внешних приложений и SDKS, как я только что описал?
Примечания:
- Я использую C ++ в Windows, и плагины распространяются как DLL.
- Типы данных, которые будут использоваться, всегда известны заранее, мне просто нужен какой-то общий способ переместить их из источника в обработчик.