Compare Bridge and Adapter in Java so interface translation and two-axis abstraction design do not get confused.
Bridge and Adapter can look similar because both rely on composition and delegation. The difference is intent.
Adapter says:
Adapter is usually retrospective. Something already exists and does not fit.
Bridge says:
Bridge is usually proactive. It designs the variation boundary before subclass growth becomes unmanageable.
Ask this:
AdapterBridgeIf the answer is the first one, do not build a bridge-shaped hierarchy just because it looks elegant.
Teams sometimes misuse Bridge where a simple adapter would do. The result is an abstraction family no client really asked for. The opposite mistake also happens: teams keep writing adapter after adapter while the real problem is a hierarchy encoding multiple dimensions and needing a bridge.