Agile Software Development: Principles, Patterns,and Practices -- The Adapter Pattern