I used to travel quite a lot, and a travel adapter that lets me plug a European plug into a UK or U.S. socket1 is a very good analogy for what’s going on with the Adapter pattern: we are given an interface, but we want a different one, and building an adapter over the interface is what gets us to where we want to be.
Scenario
Here’s a trivial example: suppose you are working with a library that’s great at drawing pixels. You, on the other hand, work with geometric objects—lines, rectangles, and that sort of thing. You want to keep working with those objects, but also need the ...