Pattern Matching to Problems - Applying Design Patterns | OneNoughtOne