Design Patterns samples in Java