Intent
Convert the interface of a class into another interface.
Applicability
- existing interface doesn't match
- provide reusable abstraction that can work with unrelated classes
- decouple objects and make them more reusable
Structure
[to do: diagram with Client, TargetInterface, Adapter, Adaptee]
Consequences
- target can work unchanged with different adaptees
- less interface coupling, increased reusability
Implementation
- pluggable adapters reduce subclassing
- parameterize Adapter with different behavior
Uses in JHotDraw
- [to do: update JModeller sample to JHotDraw 7]