On 03/16/2011 07:01 AM, spir wrote:
composition vs inheritance

I have carefully read the document "Prefer composition to inheritance",
from C++ coding standards, at
http://www.artima.com/cppsource/codestandards3.html, by Herb Sutter and
Andrei Alexandrescu.

In general, I do agree in that composition makes for a simpler scheme,
and more flexible. But when writing D code, I constantly step on the
same issue that without inheritance and (runtime type) polymorphism, I
simply cannot express /very/ common things.

You are exaggerating the frequency of certain situations and needs.

For instance, say I have 3 kinds of Xs X1 X2 X3.

That's not such a common encounter. There are many conditions that the three kinds must satisfy - such as they must have a lot in common and very few differences. Also, all differences must have been thought over at X's creation time and put in the interface of X. THEN you are supposed to use an inheritance hierarchy.

This is less frequent than people initially thought. In the 1980s it was believed that everything would belong in a hierarchy and the only challenge was to find them "good" hierarchies. Now it is quite clear things aren't all that simple.


Andrei

Reply via email to