Implementation of the patterns from the book Design Patterns in Java