The bridge pattern decouples the abstraction from its concrete implementation. In this way they can evolve independently. Following this patter the class itself can be considered as on specific implementation, while it is more generically seen as an abstraction. In C++ this pattern is sometime confused with the PIMPL (private implementation). However there are differences. PIMPL is a way of hiding the implementation. This is in order to break compilation dependencies. The Bridge pattern on the other hand is a way of supporting multiple implementations.