package adapter; /** * The Target interface — what YOUR application's code expects. * Every payment gateway in your system must implement this. * Written to handle modern async-style payment flows. */ public interface PaymentGateway { boolean charge(String customerId, double amount, String currency); boolean refund(String transactionId, double amount); String getStatus(String transactionId); }