From: "John G. Volan" <johnvolan@sprintmail.com>
Subject: Re: circular unit dependency
Date: 1997/06/03
Date: 1997-06-03T00:00:00+00:00 [thread overview]
Message-ID: <33944BC7.969@sprintmail.com> (raw)
In-Reply-To: 33942317.2BCD@pseserv6.fw.hac.com
W. Wesley Groleau (Wes) wrote:
>
> John,
> Your example is reasonable, and a solution would be a good thing,
> but the problem is not a disaster. I can only remember once in
> over ten years that I wished I could separately package two types
> but couldn't.
Of course it's not a disaster. There are, after all, a variety of
avoidance techniques, some of which I enumerate in section [3] of my
FAQ. I think what happens is that most Ada programmers naturally fall
into the technique suggested by [3.2]: Arbitrarily choose one class to
be client-only and the other to be supplier-only, force the association
to be one-way. I suspect many Ada programmers are not even conscious
that they are doing that. I exploit it whenever I can. It can let you
go quite a long time without ever facing the Day of Mutual Reckoning.
:-) However, this kind of one-way biasing is somewhat artificial and
stilted when, conceptually, the object classes are really peers. The
alternative, mutually dependent packages, only _seems_ awkward because
of this quirk (or rather, this hole) in the language. If Ada already had
one of the enhancements that have been suggested (see section [5]), I
wager we wouldn't be having any of these religious debates about how
packages were "meant" to be used.
I just think, as we begin entering an era of increasingly large and
complex domains (e.g., distributed client/server object systems), these
kinds of situations will increase in frequency. It would be a good idea
to have all our ducks in a row. I believe that separately encapsulated
yet mutually dependent object classes are a legitimate design pattern,
one that ought to be available as an option within every engineer's
repertoire.
------------------------------------------------------------------------
Internet.Usenet.Put_Signature
(Name => "John G. Volan",
Employer => "Texas Instruments Advanced C3I Systems, San Jose, CA",
Work_Email => "johnv@ti.com",
Home_Email => "johnvolan@sprintmail.com",
Slogan => "Ada95: World's *FIRST* International-Standard OOPL",
Disclaimer => "My employer never defined these opinions, so using " &
"them would be totally erroneous...or is that just " &
"nondeterministic behavior now? :-) ");
------------------------------------------------------------------------
next prev parent reply other threads:[~1997-06-03 0:00 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-05-24 0:00 circular unit dependency jdlopez
1997-05-24 0:00 ` Michael F Brenner
1997-05-25 0:00 ` Jon S Anthony
1997-05-26 0:00 ` John G. Volan
1997-05-26 0:00 ` Fergus Henderson
1997-05-27 0:00 ` Jon S Anthony
1997-06-02 0:00 ` Ada95=>Ada0Y Process? [was: circular unit dependency] John G. Volan
1997-06-04 0:00 ` Ada95 packages, C++ namespaces, & circular dependencies John G. Volan
1997-06-07 0:00 ` Ada95=>Ada0Y Process? [was: circular unit dependency] Robert Dewar
1997-06-07 0:00 ` John G. Volan
1997-06-08 0:00 ` Robert Dewar
1997-06-08 0:00 ` John G. Volan
1997-06-07 0:00 ` John G. Volan
1997-05-28 0:00 ` circular unit dependency John G. Volan
1997-06-01 0:00 ` John G. Volan
1997-05-31 0:00 ` Kevin Cline
1997-05-31 0:00 ` Matthew Heaney
[not found] ` <33932F31.4399@sprintmail.com>
1997-06-02 0:00 ` Matthew Heaney
1997-06-03 0:00 ` John G. Volan
1997-06-05 0:00 ` Matthew Heaney
1997-06-05 0:00 ` John G. Volan
1997-06-06 0:00 ` Stephen Schmid
1997-06-03 0:00 ` W. Wesley Groleau (Wes)
1997-06-03 0:00 ` John G. Volan [this message]
1997-05-31 0:00 ` John G. Volan
1997-06-01 0:00 ` Kevin Cline
1997-06-01 0:00 ` John G. Volan
1997-06-02 0:00 ` John G. Volan
-- strict thread matches above, loose matches on Subject: below --
1998-05-26 0:00 Brendan Reville
2003-05-23 9:20 Mirko Aigner
2003-05-23 11:37 ` Jeffrey Creem
2003-05-23 12:12 ` David C. Hoos
2003-05-23 18:08 ` Stephen Leake
2003-05-24 22:12 ` Robert I. Eachus
2003-05-26 8:05 ` Mirko Aigner
2005-01-04 18:31 R
2005-01-04 23:45 ` Randy Brukardt
2005-01-05 8:35 ` Martin Krischik
2005-01-05 8:55 ` Duncan Sands
2005-01-05 0:26 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox