Java Design Pattern Essentials (First Edition) - book source code