Example: inheritance vs composition
Inheritance should only be used when:
Both classes are in the same logical domain
The subclass is a proper subtype of the superclass
The superclass’s implementation is necessary or appropriate for the subclass
The enhancements made by the subclass are primarily additive.
There are times when all of these things converge:
Higher-level domain modeling
Frameworks and framework extensions
Differential programming
If you’re not doing any of these things, you probably won’t need class inheritance very often.
The “preference” for composition is not a matter of “better”, it’s a question of “most appropriate” for your needs, in a specific context.
Hopefully these guidelines will help you out?
Comments
Post a Comment