From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Do people who use Ada also use ocaml or F#?
Date: Sun, 31 Oct 2010 16:32:57 +0100
Date: 2010-10-31T16:32:57+01:00 [thread overview]
Message-ID: <op.vlf5g7q6ule2fv@garhos> (raw)
In-Reply-To: jzzcr6eu4wf4$.19xguu0qks0zu$.dlg@40tude.net
Le Sun, 31 Oct 2010 16:07:10 +0100, Dmitry A. Kazakov
<mailbox@dmitry-kazakov.de> a écrit:
>> You can build new components that use other components, hence you can
>> call it aggregation, but this is hidden in the body, so nobody cares,
>> it's not visible; unlike inheritance where the whole dependency has to
>> be visible.
>
> But reusable components are visible as well, e.g. a list [component 1] of
> arrays [component 2] of something [component 3].
Yes, they are also visible, but the visibility you need to have is not the
same. Visibility here, does not really mean “what is visible”, instead it
means “what needs to viewed”.
With composition, you just need to see the interfaces and what is directly
connected to these interfaces, i.e. what you need to view is what is made
of an exploration of the direct environment. With Inheritance, the
exploration must be transitive, can go far and/or apply to many types,
i.e. there is no real local circumscription of consequences, as what is at
one place, may be visible from all the places where the inheritance graph
can lead you from the original places (that is the meaning of “visible”
here).
This can be powerful, as much as it can damage the whole system.
To talk using a picture : there are the kind of messages/mails/etc you
will see no objection to broadcast, and there is the kind of you would
avoid to. Something a bit similar applies (propagation). There are
sensible things which should not be propagated through an Inheritance
graph (which virtually has no limit), there are other for which you will
not bother.
To say Composition is the only good way to go, would be extremist; but you
can safely say, using Composition, you will avoid many potential troubles.
The most secure you want to be with your design, the most you will use
Composition. And if the power of Inheritance is used, you will have to
carefully balance what you are throwing potentially far away (at least you
may want to avoid for likely bombs, but you will not bother for fancy
stuffs).
--
Si les chats miaulent et font autant de vocalises bizarres, c’est pas pour
les chiens.
next prev parent reply other threads:[~2010-10-31 15:32 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-29 2:27 Do people who use Ada also use ocaml or F#? Chad R. Meiners
2010-10-29 2:58 ` Yannick Duchêne (Hibou57)
2010-10-30 1:32 ` Chad R. Meiners
2010-10-30 2:22 ` Yannick Duchêne (Hibou57)
2010-10-30 3:44 ` Chad R. Meiners
2010-10-30 12:15 ` Georg Bauhaus
2010-10-30 12:14 ` Florian Weimer
2010-10-30 12:46 ` Yannick Duchêne (Hibou57)
2010-10-30 13:59 ` Florian Weimer
2010-10-30 14:12 ` Niklas Holsti
2010-10-30 18:58 ` Yannick Duchêne (Hibou57)
2010-10-30 19:20 ` Georg Bauhaus
2010-10-30 23:11 ` Jeffrey Carter
2010-10-31 15:13 ` Florian Weimer
2010-10-29 7:53 ` Dmitry A. Kazakov
2010-10-29 17:10 ` Yannick Duchêne (Hibou57)
2010-10-29 19:10 ` Dmitry A. Kazakov
2010-10-29 22:16 ` Jeffrey Carter
2010-10-30 0:01 ` Vinzent Hoefler
2010-10-30 2:07 ` Chad R. Meiners
2010-10-30 23:02 ` Jeffrey Carter
2010-10-30 23:30 ` Yannick Duchêne (Hibou57)
2010-10-31 2:31 ` Jeffrey Carter
2010-10-31 2:58 ` Yannick Duchêne (Hibou57)
2010-10-31 10:57 ` J-P. Rosen
2010-10-31 11:04 ` Yannick Duchêne (Hibou57)
2010-10-31 16:58 ` Jeffrey Carter
2010-11-01 17:46 ` Colin Paul Gloster
2010-11-01 17:03 ` Vinzent Hoefler
2010-11-03 13:30 ` Colin Paul Gloster
2010-11-03 19:16 ` Yannick Duchêne (Hibou57)
2010-10-30 7:41 ` Dmitry A. Kazakov
2010-10-30 23:08 ` Jeffrey Carter
2010-10-30 23:15 ` Vinzent Hoefler
2010-10-31 2:36 ` Jeffrey Carter
2010-10-31 3:01 ` Yannick Duchêne (Hibou57)
2010-10-31 4:52 ` Jeffrey Carter
2010-10-31 5:12 ` Yannick Duchêne (Hibou57)
2010-10-31 7:38 ` Dmitry A. Kazakov
2010-10-31 8:03 ` Yannick Duchêne (Hibou57)
2010-10-31 8:14 ` Dmitry A. Kazakov
2010-10-31 11:00 ` J-P. Rosen
2010-10-31 11:17 ` Dmitry A. Kazakov
2010-10-31 12:51 ` J-P. Rosen
2010-10-31 15:07 ` Dmitry A. Kazakov
2010-10-31 15:32 ` Yannick Duchêne (Hibou57) [this message]
2010-10-31 20:00 ` Dmitry A. Kazakov
2010-10-31 20:04 ` Yannick Duchêne (Hibou57)
2010-10-31 20:19 ` Dmitry A. Kazakov
2010-10-31 18:23 ` Jeffrey Carter
2010-10-31 18:02 ` Jeffrey Carter
2010-10-30 2:07 ` Chad R. Meiners
2010-10-30 2:29 ` Yannick Duchêne (Hibou57)
2010-10-30 3:55 ` Chad R. Meiners
2010-10-30 7:49 ` Dmitry A. Kazakov
2010-10-30 12:18 ` Florian Weimer
2010-10-30 12:59 ` Dmitry A. Kazakov
2010-10-30 19:12 ` Yannick Duchêne (Hibou57)
2010-10-30 19:37 ` Dmitry A. Kazakov
2010-10-30 20:04 ` Yannick Duchêne (Hibou57)
2010-10-30 20:54 ` Dmitry A. Kazakov
2010-10-30 21:53 ` Yannick Duchêne (Hibou57)
2010-10-31 8:12 ` Dmitry A. Kazakov
2010-10-31 9:49 ` Yannick Duchêne (Hibou57)
2010-10-31 21:46 ` Shark8
2010-11-01 9:32 ` Dmitry A. Kazakov
2010-11-01 10:17 ` Florian Weimer
2010-11-05 12:46 ` Robert A Duff
2010-11-05 16:39 ` Dmitry A. Kazakov
2010-11-06 17:22 ` Stephen Leake
2010-11-06 20:56 ` Robert A Duff
2010-11-06 23:03 ` Dmitry A. Kazakov
2010-11-06 23:41 ` Yannick Duchêne (Hibou57)
2010-11-07 0:18 ` Yannick Duchêne (Hibou57)
2010-11-07 11:51 ` Simon Wright
2010-11-07 12:14 ` Dmitry A. Kazakov
2010-11-07 3:05 ` Chad R. Meiners
2010-11-01 11:44 ` Brian Drummond
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox