Bird
Raised Fist0

In a software system modeling various robots with different capabilities like walking, talking, and sensing, which design principle best facilitates adding new capabilities without altering existing robot classes?

easy💻 Programming Q1 of Q15
OOP & Design Patterns - Composition vs Inheritance - Favour Composition, Why & When
In a software system modeling various robots with different capabilities like walking, talking, and sensing, which design principle best facilitates adding new capabilities without altering existing robot classes?
AImplement all capabilities directly in the base Robot class
BCreate a deep inheritance hierarchy for each capability
CUse composition to assemble capabilities as separate components
DUse global variables to track capabilities
Step-by-Step Solution
Solution:
  1. Step 1: Identify the problem of extensibility

    Adding new capabilities without modifying existing classes requires a flexible design.
  2. Step 2: Evaluate design approaches

    Inheritance leads to rigid hierarchies and code duplication; composition allows combining behaviors dynamically and independently.
  3. Final Answer:

    Option C -> Option C
  4. Quick Check:

    Composition promotes flexibility and easier extension [OK]
Quick Trick: Composition enables flexible behavior assembly [OK]
Common Mistakes:
MISTAKES
  • Assuming inheritance can easily add new capabilities without affecting existing classes
  • Believing all behaviors should be in a single base class
  • Using global state to manage capabilities
Trap Explanation:
PITFALL
  • Inheritance seems simpler but leads to rigid and fragile designs
Interviewer Note:
CONTEXT
  • Tests understanding of design flexibility and extension via composition
Master "Composition vs Inheritance - Favour Composition, Why & When" in OOP & Design Patterns

2 interactive learning modes - each teaches the same concept differently

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More OOP & Design Patterns Quizzes