Text this: Design Patterns Explained, A New Perspective on Object-Oriented Design, 2e