Юкасса. Теперь хотим ввести "оплата с баланса" и "оплата с привяз. карты". В форму оплаты добавляется выпадающий список - "с баланса", "новой картой", "visa 1112....2526", ... . При оплате сейчас в контроллере вызывается метод сервиса - который создает транзакцию (платеж) в бд и редиректит на оплату Юкассы.
Как теперь лучше добавить данную функциональность? Создать отдельные методы в сервисе - оплата с баланса, оплата новой картой, оплата с карты Х? В этом случае будет много дублирующего кода в этих 3 методах. Или оставить общий метод сервиса, но расширить его? И валидацию поля "тип оплаты", или "такая-то карта" в контроллере проводить и отправлять в сервис модель "привязанная карта юзера" ?
Делать match типа оплаты из дропдауна и реализовать свою логику, выделяя в отдельный метод каждый из типов оплаты
а как на счет повторяемости кода ? выносить в приватные методы ?
Можно после общих действий кидать редирект на тип оплаты, реализованный коллбэком
Паттерн стратегия
Можно объяснить ответ?)
Паттерн проектирования стратегия
https://alishoff.com/blog/326
ну по сути я верно написал
Обсуждают сегодня