Design Pattern Requirement