Доброго времени суток.
Возникла следующая задача и я не знаю, как её наиболее элегантно решить.
Постановка задачи. Сейчас я работаю с некоторым SDK (условно назовём его SDK A), который реализован ввиде com объектов. Возникла необходимость работать с SDK B, реализующим тот же самый функционал, что и SDK A, но выполнен он просто ввиде api функций. Выбор между использованием того или иного SDK выполняется в runtime'е, причём этот выбор довольно дорогостоящий т.е. определить его лучше всего один раз.
Возможные решения.
1. Можно реализовать wrapper над com классом и набором функций и передавать дополнительный параметр при инициализации, который определяет какой из SDK использовать (определить глобально). Минус данного подхода — много изменений в существующем коде.
2. Можно попробовать исползовать какой-нибудь агрегирующий объект, который будет хранить такую переменную, и уже через него будет предоставляться вызов того или иного метода или функции. Минус решения — тот же, что и у первого способа, плюс выглядит как-то монолитно.
Подскажите пожалуйста наиболее элегантный вариант решения данной проблемы.