Тестове завдання на позицію Junior Frontend Developer

Контекст

Ви працюєте на проєкті де є наступний код:

class Order {}

class PaymentProcessor {
   pay(order) {
       // Pre-processing.
       this.#payWithVisa(order)
       // Post-processing.
   }

   #payWithVisa(order) {
       // Makes payment.
   }
}

З прикладу коду прибрана вся логіка яка не стосується суті задачі.
Головне, що нас цікавить:

Для простоти припустимо, що вся логіка оплати знаходиться на бекенді.

Задача

До вас приходить Product Owner і просить додати ще два методи оплати paypal та x-payment.

  1. Як зміниться код классу PaymentProcessor (приведіть схематичну реалізацію)?
  2. Чому обрали саме таке рішення? Які у нього є плюси та мінуси?