The bridge structural pattern allows you to separate an interface from its implementation. Maybe you want to start out doing something one way and then change later. Or maybe you want to share an implementation. Or, if you're using C++, you can hide how you're doing something. This is a subtle pattern with a lot of potential.