You need to maintain a reliable interface for code that can change frequently or change between multiple implementations.
Solution
Use the Bridge pattern as an intermediate between the different implementations and the rest of the code.
Assume that you developed an in-browser text editor that saves to the cloud. Now, however, you need to port it to a stand-alone client that saves locally.
Discussion
The Bridge pattern helps you to move the implementation-specific code out of sight so that you can focus on your program’s specific code. In the above example, the rest of your application can call saver.save data without regard for where the file ultimately ends up.