Design Patterns Interview Questions Java