169 похожих чатов

Типа в сервисе есть fun createPayment(order: Order, card: CustomerCard? =

null): OrderPayment
которая внутри себя вызывает метод интерфейса. Но я не знаю как определит какую реализацию использовать и как определить какие настройки передать в метод интерфейса

5 ответов

19 просмотров

За это обычно отвечает реализация интерфейса

Sergey-Dubovik Автор вопроса
Bohdan Panchenko
За это обычно отвечает реализация интерфейса

Я думал о том, что в раелизацию можно как-то впихнуть непосредственный параметр PaymentSettings, чтобы пользователь интерфейса ничего о нем не знал, но все равно конкретную реализацию интерфейса нужно выбирать в рантайме

Sergey Dubovik
Я думал о том, что в раелизацию можно как-то впихн...

Это не просто организовать, но вообще sealed class/interface должны помочь

Не очень понятно, зачем такие заигрывания с дженериком, если у вас код внутри сервиса будет всё равно прибит к конкретным реализациям, и на основе каких-то условий выбирать из них. А вообще выглядит так, будто BlaBlaPaymentGatewayProvider<T> должен принимать PaymentConfig, и отдавать объект, у которого уже будут методы createPayment(price, currency) без всяких конфигов.

Sergey-Dubovik Автор вопроса
Vladimir Petraković
Не очень понятно, зачем такие заигрывания с дженер...

В идеале, все так и должно быть. Но что то не доходит как это реализовать. BlaBlaPaymentGatewayProvider<T> - это какой-то класс параметризированный? PaymentConfig у всех разный, для него нет общего интерфейса. В рантайме определяется какого провайдера использовать. Блин, что то у меня проблемы с продумыванием архитектурного решения проблемы. Сейчас постараюсь родить что нибудь похожее на то, что вы написали

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта