From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Re: basic basic ada question
Date: Mon, 23 Oct 2006 16:30:23 +0200
Date: 2006-10-23T16:30:23+02:00 [thread overview]
Message-ID: <ehijlv$eg3$1@cernne03.cern.ch> (raw)
In-Reply-To: <1003e77ytohm0$.1kiriiggzo76m.dlg@40tude.net>
Dmitry A. Kazakov wrote:
>>> 1. T's components
>>> 2. S's components
>>> 3. T (Initialize)
>>> 4. S (Initialize)
>>> 5. T'Class
>>> -- here a class-wide constructor defined for T can safely dispatch to a
>>> -- some primitive operation overridden by S
>>> 6. S'Class
>>>
>>> [I am not sure about ordering 5 and 6]
>> And I am not sure why do you need 5 and 6 at all - you've already done
>> the whole job in 3 and 4.
>
> You cannot dispatch to the procedures of S from Initialize of T, i.e. from
> 3 before 4 is done. S might be unusable. The step 5 is for this purpose.
But why would you need to dispatch to S after step 4?
>> For me 4 should
>> be the last step and 5,6 should not exist at all.
>
> Which is indeed a maintenance disaster. Consider GUI interfaces built in
> C++. Note that practically all of them have procedures like OnInit, because
> it is eventually impossible to construct widgets fully functional. Ada
> suffers this as well. For example, it is impossible to embed task
> components. You need special Start/Stop entries in the tasks.
But then, the construction process will involve the interaction with
other objects and that's why automating all 6 steps above for a single
object will not necessarily solve the problem. In the case of GUI, you
might want to construct widgets somewhere between 4 and 5. The
OnInit-like procedures provide explicit hooks for this.
I any case, if there is a way to get rid of OnInit, I think it should be
possible without 5 and 6 anyway - possibly with additional objects
involved instead, but I'd prefer more elaborate collaboration pattern
(which is explicit in the design) in place of more elaborate
construction mechanism (which is implicit).
--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
next prev parent reply other threads:[~2006-10-23 14:30 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-19 14:30 basic basic ada question markww
2006-10-19 14:47 ` Georg Bauhaus
2006-10-19 15:10 ` markww
2006-10-21 10:29 ` Stephen Leake
2006-10-19 15:11 ` Dmitry A. Kazakov
2006-10-19 15:45 ` markww
2006-10-19 16:29 ` Gautier
2006-10-19 17:16 ` Dmitry A. Kazakov
2006-10-19 20:07 ` Jeffrey R. Carter
2006-10-19 22:20 ` Robert A Duff
2006-10-20 5:10 ` Jeffrey R. Carter
2006-10-20 7:13 ` Maciej Sobczak
2006-10-20 20:39 ` Jeffrey R. Carter
2006-10-20 7:25 ` Maciej Sobczak
2006-10-20 20:54 ` Jeffrey R. Carter
2006-10-19 21:30 ` James Alan Farrell
2006-10-19 23:03 ` Robert A Duff
2006-10-20 4:54 ` Jeffrey R. Carter
2006-10-20 7:53 ` Dmitry A. Kazakov
2006-10-20 8:17 ` Maciej Sobczak
2006-10-20 9:08 ` Dmitry A. Kazakov
2006-10-20 11:15 ` Maciej Sobczak
2006-10-20 12:19 ` Dmitry A. Kazakov
2006-10-20 12:38 ` Maciej Sobczak
2006-10-20 13:26 ` Dmitry A. Kazakov
2006-10-20 15:29 ` Robert A Duff
2006-10-20 17:37 ` Dmitry A. Kazakov
2006-10-20 20:59 ` Robert A Duff
2006-10-21 13:39 ` Dmitry A. Kazakov
2006-10-21 17:53 ` Robert A Duff
2006-10-22 8:45 ` Dmitry A. Kazakov
2006-10-23 7:45 ` Maciej Sobczak
2006-10-23 9:21 ` Dmitry A. Kazakov
2006-10-23 14:30 ` Maciej Sobczak [this message]
2006-10-23 15:08 ` Dmitry A. Kazakov
2006-10-23 15:49 ` Robert A Duff
2006-10-24 7:34 ` Dmitry A. Kazakov
2006-10-20 19:04 ` Simon Wright
2006-10-20 15:27 ` Robert A Duff
2006-10-20 17:37 ` Dmitry A. Kazakov
2006-10-20 21:00 ` Jeffrey R. Carter
2006-10-21 8:19 ` Dmitry A. Kazakov
2006-10-21 17:32 ` Robert A Duff
2006-10-22 8:45 ` Dmitry A. Kazakov
2006-10-30 11:46 ` Martin Krischik
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox