Інтерфейс PaymentMethod і різні реалізації

Інтерфейс PaymentMethod і різні реалізації
{
  "input": {
    "prompt": " Чиста технічна інфографіка: зверху блок “CheckoutService”, стрілка до “PaymentMethod (interface)”, а від нього — три підблоки “CardPayment”, “ApplePayPayment”, “CryptoPayment”. У кожному підблоці однакова сигнатура “pay(amount)”, але різний маленький піктограмний результат (картка/телефон/монета). Підписом дрібно: “Клієнтський код залежить від контракту, а не реалізації”. Стиль: плоский, читабельний, у кольорах видання, без згадки конкретних логотипів Apple чи платіжних систем (лише узагальнені іконки)."
  }
}

Used in "Поліморфізм в ООП: як змусити код “працювати з усім” і не зійти з розуму (майже)"