Как применять Strategy паттерн в Spring для бизнес-логики?

Middle
268 просмотров
AFK Offer AI

Strategy = семейство взаимозаменяемых алгоритмов за общим интерфейсом. В Spring: определяем интерфейс PaymentStrategy, реализации CardPayment, BankTransferPayment — оба @Component. В сервисе: Map strategies (Spring автоинжектирует все реализации по имени). Выбор: strategies.get("card").process(payment). Добавление нового способа оплаты — новый класс, без изменения существующих. Хорошо комбинируется с @ConditionalOnProperty для условного включения стратегий.

Следующий вопрос

Что такое schema evolution и как делать backward compatible изменения?