Design Patterns Exercise using Java