Bird
0
0

Which design approach best supports scalability and easy extension?

hard📝 Trade-off Q15 of 15
LLD - Behavioral Design Patterns — Part 2
You want to design a system using the Interpreter pattern to evaluate complex search queries combining keywords with AND, OR, and NOT. Which design approach best supports scalability and easy extension?
AStore all queries as strings and parse them manually each time without classes
BUse a single class with many if-else statements to handle all expression types
CCreate separate classes for TerminalExpression, AndExpression, OrExpression, and NotExpression implementing a common interface
DImplement only TerminalExpression and handle AND/OR/NOT outside the interpreter
Step-by-Step Solution
Solution:
  1. Step 1: Identify design principles for Interpreter pattern

    Using separate classes for each expression type following a common interface allows modularity and easy extension.
  2. Step 2: Evaluate options for scalability and maintainability

    Create separate classes for TerminalExpression, AndExpression, OrExpression, and NotExpression implementing a common interface supports adding new expressions without changing existing code, unlike monolithic if-else or manual parsing.
  3. Final Answer:

    Create separate classes for TerminalExpression, AndExpression, OrExpression, and NotExpression implementing a common interface -> Option C
  4. Quick Check:

    Separate classes + common interface = scalable design [OK]
Quick Trick: Use separate classes per expression type for easy extension [OK]
Common Mistakes:
MISTAKES
  • Using one class with complex conditionals
  • Parsing strings manually every time
  • Handling logic outside interpreter classes

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More LLD Quizzes