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]]