Problem-Pattern Matching - When to Use Design Patterns | OneNoughtOne