Moody's interview question

Some OOP design patterns, and the implementation of hypothetical interfaces/classes