Source code for Design Patterns in Java