The adapter design pattern allows objects with incompatible interfaces to collaborate with one another. * This is accomplished by using inheritance and composition. * It creates a middle-layer class that serves as a translator between your code and the legacy of the third party class you want to make use of. * The pattern applies the open-closed principle because the adapting behavior is separated and we can introduce new adapters without breaking existing code. * The pattern also applies the single responsibility principle. ![[Screenshot 2023-09-05 at 11.40.44 PM.png]]