Я создаю библиотеку, которая интегрирует наш продукт с другим сторонним продуктом.
Используемый дизайн включает в себя интерфейс, который абстрагирует основные операции, которые я хотел бы интегрировать в наш продукт, так чтобы при выпуске нового стороннего API мы прозрачно переключились на его использование вместо старого без изменения существующий код.
С этой целью реальный код, который будет возвращать конкретный экземпляр объекта, взаимодействующего со сторонним API, должен принять решение о том, «какую реализацию выбрать».
Для простых нужд, я предполагаю, что записи в файле конфигурации будет достаточно, чтобы сказать полное имя реализующего класса.
Должен ли я использовать контейнер IoC в этом случае, или я должен использовать шаблон фабричного метода и сам его кодировать? (используйте отражение для создания объекта и т. д.).
Какие плюсы и минусы для этого? Я что-то пропустил?