Too Long; Didn't Read
The adapter design pattern is one of the most practical and useful patterns that has use in many cases. When you have two incompatible interfaces in your classes you can use the adapter pattern. The pattern converts external contracts to your contract and in this way, there is no need to change contracts in each side. The best practice is to wrap that third-party package in an adapter/ wrapper class. This is a special case of wrapping a special design pattern for wrapping some classes or objects using the adapter/wrapper design pattern.