Design Patterns implemented in Java