Files
design-patterns/02-structural/adapter/README.md

1.0 KiB

Adapter Design Pattern — Java Example

Pattern: Structural → Adapter Article: https://ankurm.com/adapter-design-pattern-java/

What this example shows

Wraps a third-party StripeClient (with its own API) behind a PaymentGateway interface that your application code expects. The OrderService client never touches StripeClient directly — it only sees PaymentGateway. Swapping payment providers requires changing one line.

How to run

# From this folder:
javac adapter/*.java
java adapter.Main

Requires Java 11+.

Files

File Role
PaymentGateway.java Target interface (what your app expects)
StripeClient.java Adaptee (third-party SDK you can't modify)
StripePaymentAdapter.java Adapter (bridges the two)
OrderService.java Client (only uses PaymentGateway)
Main.java Demo entry point

See Also