Java GoF Design Patterns - Examples