Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series) · Study