From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a85dd10bdbdb69d4 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-12-13 12:25:34 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!syros.belnet.be!news.belnet.be!feed.news.nacamar.de!newsfeed.vmunix.org!news-mue1.dfn.de!news-koe1.dfn.de!lnewspeer00.lnd.ops.eu.uu.net!emea.uu.net!server1.netnews.ja.net!pegasus.csx.cam.ac.uk!solway.cl.cam.ac.uk!sjm217 From: news01+Steven.Murdoch@cl.cam.ac.uk (Steven Murdoch) Newsgroups: comp.lang.ada Subject: Re: Giving a package specification access to the private types of another package Date: 13 Dec 2002 20:25:32 GMT Organization: University of Cambridge, England Sender: sjm217@solway.cl.cam.ac.uk (Steven Murdoch) Message-ID: References: <3DF8C169.9020309@acm.org> NNTP-Posting-Host: solway.cl.cam.ac.uk X-Newsreader: xrn 9.02 Xref: archiver1.google.com comp.lang.ada:31798 Date: 2002-12-13T20:25:32+00:00 List-Id: In article <3DF8C169.9020309@acm.org>, Jeffrey Carter writes: >Grein, Christoph wrote: >>>Perfect? That's a bit strong. It's a good design, but as given, I think >>>that putting Foobar in B (perhaps with "is separate") is as good. >> >> I beg to differ. For this tiny example, you're right. But IIRC, the OP said that >> his package B.A was quite big and held a big part of the implementation stuff of >> B. Then child packages are the "perfect" design because you can split one big >> body (B) is several smaller children dedicated to specific subproblems. > >My recollection is that Foobar was large and A existed simply to make >Foobar separate from B, in which case putting Foobar in B and making it >separate still seems just as good. If it's A that's large and Foobar is >only part of it, then a private package is probably better. I'm not sure if I was clear in my original post, but A was the big thing I wanted to move out of B. I couldn't include the procedures that Foobar uses inside the declaration of Foobar since one was a callback so had to be part of a package and not a procedure. Also there are 3 public procedures in A, but they are all part of the same conceptual purpose so belong together. Thanks for you help, Steven Murdoch.