The adapter pattern is perfectly suited for abstraction of third-party libraries, wrapping legacy code to fit newer interfaces or hiding implementation details or complexity away.
- Identify the class or classes that need to be adapted.
- Identify and implement a protocol that represent the common tasks for the objects to accomplish.
- Implement either wrapper classes or extensions to the existing classes.
- Remove direct access to the nonadapted classes.
Implementation of the adapter pattern is completely up to you and your requirements. It is good practice to abstract away moving pieces in your programs to avoid vendor lock-in, without needing a full refactor of your code bases.