Design Patterns Explained, A New Perspective on Object-Oriented Design, 2e - James R. Trott (Addison-Wesley)