Applied Java Patterns 2.0 by Stephen A. Stelting & Olaf Maassen