converts the interface of one object so that another object can understand it.
- Adapter - the middle class between 3rd party library class(Service class) and client class
- Service - the 3rd party class
- ClientInterface - describe the rules that other class should follow it
image by refactoring guru