v4vijayakumar said:
Adapter makes things work after they're designed; Bridge makes them
work before they are.
what the above statement from [GOF, p219] means?
Actually, this is described in the paragraph before what you have
quoted. To express it in other words:
If you have two existing things which don't fit well together, you use
an Adapter to glue them together.
If you design something from scratch and you know upfront that you have
one or more implementations behind a common abstraction (an interface),
you right from the start design a Bridge to link abstraction and
implementation.
An Adapter is there to cure a symptom (things not fitting together). A
Bridge is a design choice when you want to decouple an abstraction and
an implementation to a certain degree.
The code of an Adapter and a Bridge can look the same. It is the
intention why it was introduced which makes the difference.
/Thomas