From: John Volan <johnv@ac3i.dseg.ti.com>
Subject: Re: Mutually dependent private types
Date: 1998/05/29
Date: 1998-05-29T00:00:00+00:00 [thread overview]
Message-ID: <356F38EC.AEF725EC@ac3i.dseg.ti.com> (raw)
In-Reply-To: EtLsGH.5x@jvdsys.nextjk.stuyts.nl
Jerry van Dijk wrote:
>
> So perhaps you just found a new class:
>
> Office_Employee_List
>
> :-)
This was offered in jest, but let's consider it seriously:
One way to implement an cross-referencing association between two
classes like Employee and Office could be to keep both classes ignorant
of the association and just have a third class that is entirely
responsible for keeping track of all the cross-references (in some sort
of table structure). Yes, that is a valid design alternative, but there
are tradeoffs, and it doesn't work for all applications. In particular,
if Office and Employee have primitive/inheritable/overridable operations
that take parameters of each other's type, then there is no way that the
two classes can avoid knowing about the association.
Also, this kind of cross-referencing association isn't the only way two
classes might be forced into mutual dependency. My Doctors and Patients
example in my FAQ didn't involve any cross-referencing between Doctor
and Patient objects, but it did involve mutually-dependent primitive
operations.
--
Signature volanSignature =
new Signature
( /*name: */ "John G. Volan",
/*employer: */ "Raytheon Advanced C3I Systems, San Jose",
/*workEmail: */ "johnv@ac3i.dseg.ti.com",
/*homeEmail: */ "johnvolan@sprintmail.com",
/*selfPlug: */ "Sun Certified Java Programmer",
/*twoCents: */ "Java would be even cooler with Ada95's " +
"generics, enumerated types, function types, " +
"named parameter passing, etc...",
/*disclaimer:*/ "These views not packaged in COM.ti.dseg.ac3i, " +
"so loading them throws DontQuoteMeError. :-)" );
next prev parent reply other threads:[~1998-05-29 0:00 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-05-21 0:00 Mutually dependent private types adam
1998-05-21 0:00 ` Matthew Heaney
1998-05-22 0:00 ` John Volan
1998-05-22 0:00 ` Matthew Heaney
1998-05-26 0:00 ` Robert I. Eachus
1998-05-26 0:00 ` John Volan
1998-05-27 0:00 ` Jerry van Dijk
1998-05-29 0:00 ` John Volan [this message]
1998-05-27 0:00 ` Robert I. Eachus
1998-05-29 0:00 ` John Volan
1998-05-26 0:00 ` John Volan
1998-05-26 0:00 ` Matthew Heaney
1998-05-27 0:00 ` John Volan
1998-05-27 0:00 ` Matthew Heaney
1998-05-28 0:00 ` John Volan
1998-05-28 0:00 ` Matthew Heaney
1998-05-29 0:00 ` John Volan
1998-05-29 0:00 ` Brian Rogoff
1998-05-29 0:00 ` John Volan
1998-05-29 0:00 ` Brian Rogoff
1998-05-29 0:00 ` John Volan
1998-05-30 0:00 ` Geoff Bull
1998-05-30 0:00 ` Fergus Henderson
1998-06-01 0:00 ` John Volan
1998-06-02 0:00 ` Fergus Henderson
1998-06-04 0:00 ` Robert Dewar
1998-05-21 0:00 ` John Volan
-- strict thread matches above, loose matches on Subject: below --
1998-05-22 0:00 adam
1998-05-22 0:00 ` John Volan
1998-05-22 0:00 ` Brian Rogoff
1998-05-22 0:00 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox