This is a UML class diagram example for the Adapter design pattern.
Permits classes with disparate interfaces to work together by creating a common object by which they may communicate and interact.
- A class to be used doesn't meet interface requirements.
- Complex conditions tie object behavior to its state.
- Transitions between states need to be explicit.