Where does this concept of "favor composition over inheritance" come from?
Posted
by
Mason Wheeler
on Programmers
See other posts from Programmers
or by Mason Wheeler
Published on 2011-04-04T22:54:14Z
Indexed on
2012/11/26
23:23 UTC
Read the original article
Hit count: 430
In the last few months, the mantra "favor composition over inheritance" seems to have sprung up out of nowhere and become almost some sort of meme within the programming community. And every time I see it, I'm a little bit mystified. It's like someone said "favor drills over hammers." In my experience, composition and inheritance are two different tools with different use cases, and treating them as if they were interchangeable and one was inherently superior to the other makes no sense.
Also, I never see a real explanation for why inheritance is bad and composition is good, which just makes me more suspicious. Is it supposed to just be accepted on faith? Liskov substitution and polymorphism have well-known, clear-cut benefits, and IMO comprise the entire point of using object-oriented programming, and no one ever explains why they should be discarded in favor of composition.
Does anyone know where this concept comes from, and what the rationale behind it is?
© Programmers or respective owner