Bridge pattern   =   Insulation

implementation details (type, data, or function) are not accessible programmatically through the interface of the component - a logical property of design
implementation details (type, data, or function) can be altered without forcing clients of the component to recompile - a physical property of design

Carroll and Ellis - inheritance hierarchy styles

The design of a reusable library can be based on one of several inheritance hierarchy styles or on a combination of styles. These include: Although a direct inheritance hierarchy is the easiest style to implement and understand as well as the most efficient, interfaced hierarchies, object factories, and handle hierarchies facilitate link compatibility between releases of a library. Further, interfaced hierarchies increase a library's extensibility. The table summarizes the most important differences among the hierarchy styles. As always, no single design is best for all libraries. Library designers must decide which is the best choice for their library and their users.

Complexity Efficiency Extensibility Link
Direct simple good mediocre minimal
Interfaced complex reduced good partial
Interfaced + Factory complex reduced good total
Handle simple reduced poor total
Interfaced Handle complex reduced good total

Lakos - insulation techniques

Handle Interfaced

Meyers - insulation techniques

Handle Interfaced