Avoiding Premature Patterns - When to Use Design Patterns | OneNoughtOne