28 lines
1.1 KiB
Java
28 lines
1.1 KiB
Java
package adapter;
|
|
|
|
public class Main {
|
|
|
|
public static void main(String[] args) {
|
|
System.out.println("=== Adapter Design Pattern Demo ===\n");
|
|
|
|
// --- Object Adapter: Stripe ---
|
|
System.out.println("-- Using Stripe via Adapter --");
|
|
StripeClient stripeClient = new StripeClient("sk_test_4eC39HqLyjWDarjtT1zdp7dc");
|
|
PaymentGateway stripeGateway = new StripePaymentAdapter(stripeClient);
|
|
|
|
OrderService orderService = new OrderService(stripeGateway);
|
|
orderService.processOrder("ORD-001", "cus_abc123", 99.99);
|
|
|
|
System.out.println("\n-- Testing refund --");
|
|
boolean refunded = stripeGateway.refund("ch_ORD-001", 99.99);
|
|
System.out.println("Refund issued: " + refunded);
|
|
|
|
// --- JDK Example: InputStreamReader as Adapter ---
|
|
System.out.println("\n-- JDK Adapter: InputStreamReader --");
|
|
System.out.println("InputStreamReader wraps System.in (InputStream) as a Reader.");
|
|
System.out.println("Your code reads chars; the adapter handles byte-to-char conversion.");
|
|
|
|
System.out.println("\n=== Demo complete ===");
|
|
}
|
|
}
|