Patterns in Java vol. 2. - Grand, Mark (wiley computer publishing, 2003)