comp.lang.ada
 help / color / mirror / Atom feed
From: Richard D Riehle <laoXhai@ix.netcom.com>
Subject: Re: Private Children
Date: 1999/06/22
Date: 1999-06-22T11:48:42-05:00	[thread overview]
Message-ID: <7koepa$66q@dfw-ixnews9.ix.netcom.com> (raw)
In-Reply-To: dale-2206991424480001@192.168.0.2

In article <dale-2206991424480001@192.168.0.2>,
	dale@cs.rmit.edu.au (Dale Stanbrough) wrote:

>Richard D Riehle wrote:
>
>         package P.Hidden_Level.Public_Level is
>          -- code deleted

>         package body P.Hidden_Level.Public_Level is
            -- code deleted
>
>It's still a bit ordinary though. The services offered in the
>public level can't rely on abstractions advertised in the private
>section, which I see as the major failure of this model.

I see it differently -- not as a failure but as an opportunity
for powerful design of abstractions.  It might be the case that
we want to make some specifications available for type derivation
with a hierarchy of types, T'Class, as an implementation detail,
but hide those implementation details from the final user of 
some public class.  I wonder if this is one way for an Ada designer 
to differentiate implementation inheritance from interface inheritance. 

The type exported from the public package will be a pure interface,
a contract with some client.  The abstractions in the parent packages,
those with no public specifications, can safely focus on implementation
inheritance without the risk that the client will inadvertantly enter the
hierarchy at the wrong place.  

Richard Riehle
richard@adaworks.com
http://www.adaworks.com

   
 




  parent reply	other threads:[~1999-06-22  0:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-06-20  0:00 Private Children Matthew Heaney
1999-06-21  0:00 ` Ted Dennison
1999-06-21  0:00   ` Tucker Taft
1999-06-21  0:00     ` Matthew Heaney
1999-06-21  0:00     ` Matthew Heaney
1999-06-21  0:00       ` Tucker Taft
1999-06-22  0:00         ` Richard D Riehle
1999-06-22  0:00           ` Dale Stanbrough
1999-06-22  0:00             ` Matthew Heaney
1999-06-23  0:00               ` Dale Stanbrough
1999-06-23  0:00                 ` Matthew Heaney
1999-06-23  0:00                   ` Dale Stanbrough
1999-06-23  0:00                     ` Richard D Riehle
1999-06-23  0:00                       ` Vladimir Olensky
1999-06-23  0:00                         ` Richard D Riehle
1999-06-24  0:00                           ` Hyman Rosen
1999-06-24  0:00                             ` Richard D Riehle
1999-06-23  0:00                       ` John Duncan
1999-06-24  0:00                       ` Dale Stanbrough
1999-06-22  0:00             ` Richard D Riehle [this message]
1999-06-25  0:00   ` Robert Dewar
1999-06-21  0:00 ` Dale Stanbrough
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox