Blog post : OOP composition with mixins

Robert M. Münch via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Aug 31 23:56:57 PDT 2015


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 
of D.

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster



More information about the Digitalmars-d-announce mailing list