On 2015-08-31 14:20:23 +0000, Abdulhaq said:
Inheritance certainly is 'the base class of all evil'. I have a theory
that the reason inheritance is so overused in OOP languages lies in the
way it is taught - the OOP aspects cover much of the syntax of the
language and hence much teaching material revolves around inheritance.
This makes the student believe that inheritance is therefore the 'right
way' to proceed.
I think what's missing is, that inheritance should be used with a
type-system view in mind. It makes sense to model "typed things" but
not to model functionallity / re-using of functionallity. This is much
bettern done with a concept like mixins.
And mixing both is a very powerful way to model complex system. You
"just" need to know when to use one or the other.
Many years of pain have, however, taught me to avoid inheritance and
to prefer composition - even/especially when using e.g. Java.
Because all those OOP languages are to dogmatic about it's use. C++ is
free, but is missing (not sure if still) the template and mixin power
Robert M. Münch
smarter | better | faster