null): OrderPayment
которая внутри себя вызывает метод интерфейса. Но я не знаю как определит какую реализацию использовать и как определить какие настройки передать в метод интерфейса
За это обычно отвечает реализация интерфейса
Я думал о том, что в раелизацию можно как-то впихнуть непосредственный параметр PaymentSettings, чтобы пользователь интерфейса ничего о нем не знал, но все равно конкретную реализацию интерфейса нужно выбирать в рантайме
Это не просто организовать, но вообще sealed class/interface должны помочь
Не очень понятно, зачем такие заигрывания с дженериком, если у вас код внутри сервиса будет всё равно прибит к конкретным реализациям, и на основе каких-то условий выбирать из них. А вообще выглядит так, будто BlaBlaPaymentGatewayProvider<T> должен принимать PaymentConfig, и отдавать объект, у которого уже будут методы createPayment(price, currency) без всяких конфигов.
В идеале, все так и должно быть. Но что то не доходит как это реализовать. BlaBlaPaymentGatewayProvider<T> - это какой-то класс параметризированный? PaymentConfig у всех разный, для него нет общего интерфейса. В рантайме определяется какого провайдера использовать. Блин, что то у меня проблемы с продумыванием архитектурного решения проблемы. Сейчас постараюсь родить что нибудь похожее на то, что вы написали
Обсуждают сегодня