$> git checkout bridge
Intent
Decouple an abstraction from its implementation so that the two can vary independently.1
Applications
What does it mean to decouple an abstractionfrom its implementation? To show an example of this, let’s imagine that you want to send a message. A message is an abstraction. However, there are many different ways you can send a message. You can e-mail it; send it as a letter in the mail; speak it out loud from the rooftops; post it to Facebook, Twitter, or some other web site; put it in a bottle and drop it in the ocean; or fly a banner behind an airplane. Heck, there is even ...