Я создаю приложение для электронной коммерции Android, и теперь я собираюсь создать корзину действий.У меня есть модель корзины, и я хочу применить шаблон стратегии, чтобы открыть классическое обновление будущих методов оплаты с помощью корзины с pay(paymentMethod: PaymentMethod)
и интерфейсом PaymentMethod с сигнатурой метода pay(float: amount)
,На данный момент я хочу, чтобы Paypal реализовал интерфейс метода оплаты, поэтому я использую Paypal SDK для Android.Дело в том, что Paypal SDK требует начать новое действие для управления платежом, поэтому я застрял на том, кто должен реализовывать интерфейс PaymentMethod.
Моих испытаний было два, но я не знаю, какиеодин больше подходит для моего случая: в первом я позволил своей деятельности реализовать метод оплаты, а затем по нажатию кнопки «Купить» на onClick я вызываю метод оплаты, который запускает операцию Paypal, ожидающую результат onActivity таким образом: `
PayPalPayment payment = new PayPalPayment(new BigDecimal(myFloat), "USD", myProduct,
PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(this, PaymentActivity.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, PaypalConfigurationService.getConfig());
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
startActivityForResult(i, 0);
`Во втором я создал класс PaypalMethod, который реализует интерфейс PaymentMethod, и в этом случае метод pay возвращает Intent, который создается так же, как и выше, используемый действием корзины при нажатии кнопки покупки,поэтому в этом случае я немного изменил шаблон проектирования.
Оба метода работают, но я хотел бы знать, какой из них верен с точки зрения разработки программного обеспечения, или, если существует какой-либо другой метод, более корректный для применения.