From: donh@syd.csa.com.au (Don Harrison)
Subject: Re: Real OO
Date: 1996/03/28
Date: 1996-03-28T00:00:00+00:00 [thread overview]
Message-ID: <DoyoL0.MxL@assip.csasyd.oz> (raw)
In-Reply-To: 4ja50o$gup@inferno.mpx.com.au
Thomas,
Hi! You wrote:
:In article <Dov7D0.AtM@assip.csasyd.oz>, donh@syd.csa.com.au (Don Harrison) writes:
:>Norman H. Cohen wrote:
:>
:>:When Don Harrison asked how to achieve selective export in Ada, I
:>:proposed a technique, but I never asked why one would want selective
:>:export.
:>:
:>:Selective export does indeed help document the modular structure of a
:>:program, and make the program easier for a reader to understand, but it
:>:seems to me that the documentation is in the wrong place. In general,
:>:the writer of a program component should be as unaware as possible of the
:>:context in which that component will be used, especially if loose
:>:coupling and reusability are valued.
:>
:
:This area may seem initially to be one where Eiffel takes the wrong
:tack. But consider two things:
:
:a) we shouldn't be obsessed with single-class encapsulation at the
: expense of allowing coarse-grained objects consisting of
: collaborating fine-grained instances. Such coarse-grained entities
: represent closely co-operating and "co-designed" abstractions; for
: example most design patterns and small software components would
: fall into this category. I would suggest that the really important
: boundary of re-use is not around the single class, but around small
: groups of classes designed to realise a coarser abstraction.
Wouldn't structuring depend on whether or not the behaviour is self contained
or not? Consider each case:
1) Self contained - we would then want to wrap the co-operating abstractions
into a higher level abstraction, perhaps using a deferred class with
constrained generic parameters. Then the design would offer a single
cohesive interface for easy reuse.
2) Not self contained - the co-operating abstractions are linked to other
abstractions so may not be encapsulated. Would this indicate a design flaw?
It would certainly make reuse more difficult.
Which one corresponds to design patterns? Both?
:b) the Eiffel export mechanism can be used to specify an abstract
: parent class e.g.
:
: feature {LIST}
:
: This effectively says that any class conforming to the design
: intention of LIST may have access to the following features. Thus
: selective export does not restrict the client to be a single
: effective class, but to classes conforming to a design idea.
So, LIST would be 'deferred' in this case? [Eiffel analogue of 'abstract'].
:- Thomas Beale
:
:____________________________________________________________________________
:Thomas Beale |
: Class Technology | Email: thomas@class.com.au
: PO Box 6274 North Sydney |
: NSW 2060 | Ph: +61 2 9922 7222
: AUSTRALIA | Fax: +61 2 9922 7703
:_______________________________________|____________________________________
Don.
next prev parent reply other threads:[~1996-03-28 0:00 UTC|newest]
Thread overview: 218+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4id031$cf9@dayuc.dayton.saic.com>
1996-03-18 0:00 ` Real OO Norman H. Cohen
1996-03-18 0:00 ` The Right Reverend Colin James III
1996-03-19 0:00 ` Norman H. Cohen
1996-03-20 0:00 ` Norman Cohen giving IBM a bad name The Right Reverend Colin James III
1996-03-20 0:00 ` Dave Retherford
1996-03-20 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) David Emery
1996-03-20 0:00 ` Mark R Okern - F95
1996-03-20 0:00 ` Real OO John G. Volan
1996-03-21 0:00 ` Scott Leschke
1996-03-21 0:00 ` Norman H. Cohen
1996-03-21 0:00 ` Robert A Duff
1996-03-22 0:00 ` Don Harrison
1996-03-21 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) Richard A. O'Keefe
1996-03-21 0:00 ` Robert Dewar
1996-03-20 0:00 ` Norman Cohen giving IBM a bad name Brian & Karen Bell
1996-03-20 0:00 ` Real OO Dale Stanbrough
1996-03-21 0:00 ` Richard Pitre
1996-03-21 0:00 ` Norman Cohen giving IBM a bad name Kent Mitchell
1996-03-22 0:00 ` Robert Munck
1996-03-22 0:00 ` Mark Brennan
1996-03-22 0:00 ` David Curry
1996-03-23 0:00 ` Tom Reid
1996-03-21 0:00 ` Real OO Don Harrison
1996-03-21 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) Ulrich Windl
1996-03-20 0:00 ` Real OO Don Harrison
1996-03-22 0:00 ` Don Harrison
1996-03-22 0:00 ` Norman H. Cohen
1996-03-27 0:00 ` Don Harrison
1996-03-27 0:00 ` Norman H. Cohen
1996-03-28 0:00 ` Jacob Gore
1996-04-04 0:00 ` Don Harrison
1996-04-04 0:00 ` Laurent Guerby
1996-04-04 0:00 ` Robb Nebbe
1996-04-04 0:00 ` Tucker Taft
1996-04-04 0:00 ` Tucker Taft
1996-04-12 0:00 ` Don Harrison
1996-04-12 0:00 ` Don Harrison
1996-04-15 0:00 ` Robert I. Eachus
1996-04-19 0:00 ` Don Harrison
1996-04-19 0:00 ` Matt Kennel
1996-04-20 0:00 ` Bob Hathaway
1996-04-23 0:00 ` Don Harrison
1996-04-04 0:00 ` Jon S Anthony
1996-03-22 0:00 ` Norman H. Cohen
1996-03-26 0:00 ` Don Harrison
1996-03-26 0:00 ` Norman H. Cohen
1996-03-29 0:00 ` Don Harrison
1996-03-27 0:00 ` Thomas Beale
1996-03-28 0:00 ` Don Harrison [this message]
1996-03-23 0:00 ` Joachim Durchholz
1996-03-26 0:00 ` Norman H. Cohen
1996-04-04 0:00 ` Don Harrison
1996-04-04 0:00 ` Jon S Anthony
1996-04-12 0:00 ` Don Harrison
1996-04-17 0:00 ` Jon S Anthony
1996-04-19 0:00 ` Don Harrison
1996-04-19 0:00 ` Multiple Dispatch in Ada 95 (Was Re: Real OO) Robert I. Eachus
1996-04-19 0:00 ` Real OO Jon S Anthony
1996-04-23 0:00 ` Don Harrison
1996-04-24 0:00 ` Don Harrison
1996-04-29 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Robert Dewar
1996-04-30 0:00 ` Amit Patel
1996-04-30 0:00 ` Robert A Duff
1996-05-07 0:00 ` Amit Patel
1996-05-01 0:00 ` Norman H. Cohen
1996-05-01 0:00 ` Colin James III (The Rt Rev'd)
1996-05-07 0:00 ` Amit Patel
1996-04-30 0:00 ` Robert A Duff
1996-04-30 0:00 ` Amit Patel
1996-04-30 0:00 ` Robert Dewar
1996-05-01 0:00 ` Richard Bielak
1996-05-01 0:00 ` Adam Beneschan
1996-05-02 0:00 ` Ell
1996-05-01 0:00 ` AdaWorks
1996-05-01 0:00 ` Don Harrison
1996-05-01 0:00 ` David Hopwood
1996-05-03 0:00 ` Don Harrison
1996-05-01 0:00 ` Don Harrison
1996-05-02 0:00 ` Robert A Duff
1996-05-03 0:00 ` Don Harrison
1996-05-03 0:00 ` Robert A Duff
1996-05-06 0:00 ` Don Harrison
1996-05-06 0:00 ` Robb Nebbe
1996-05-06 0:00 ` Robert A Duff
1996-05-02 0:00 ` Robert A Duff
1996-05-03 0:00 ` Don Harrison
1996-05-10 0:00 ` Don Harrison
1996-05-08 0:00 ` Joachim Durchholz
1996-05-03 0:00 ` Don Harrison
1996-05-03 0:00 ` Dave Fitch
1996-05-07 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Joachim Durchholz
1996-04-30 0:00 ` Jon S Anthony
1996-05-01 0:00 ` Matt Kennel
1996-05-03 0:00 ` Don Harrison
1996-05-02 0:00 ` Don Harrison
1996-05-02 0:00 ` Jon S Anthony
1996-05-03 0:00 ` Don Harrison
1996-05-06 0:00 ` Jon S Anthony
1996-05-02 0:00 ` Robert I. Eachus
1996-05-06 0:00 ` Jon S Anthony
1996-05-06 0:00 ` Don Harrison
1996-05-06 0:00 ` Don Harrison
1996-05-07 0:00 ` Jon S Anthony
1996-05-13 0:00 ` Don Harrison
1996-05-09 0:00 ` Jon S Anthony
1996-04-19 0:00 ` Multiple Dispatch in Ada 95 (Was Re: Real OO) Brian Rogoff
1996-04-21 0:00 ` Brian Rogoff
1996-04-20 0:00 ` Brian Rogoff
1996-04-21 0:00 ` Robert A Duff
1996-04-24 0:00 ` Real OO Joachim Durchholz
1996-05-01 0:00 ` Matt Kennel
1996-05-02 0:00 ` Don Harrison
1996-05-07 0:00 ` Joachim Durchholz
1996-05-08 0:00 ` Jon S Anthony
1996-05-09 0:00 ` Robert I. Eachus
1996-04-30 0:00 ` Jon S Anthony
1996-05-03 0:00 ` Don Harrison
1996-05-07 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Joachim Durchholz
1996-05-08 0:00 ` Joachim Durchholz
1996-05-10 0:00 ` Jon S Anthony
1996-05-02 0:00 ` Jon S Anthony
1996-05-06 0:00 ` Jon S Anthony
1996-04-08 0:00 ` Norman H. Cohen
1996-04-08 0:00 ` Robert A Duff
1996-04-09 0:00 ` Norman H. Cohen
1996-04-10 0:00 ` Don Harrison
1996-04-11 0:00 ` Jacob Gore
1996-04-12 0:00 ` Don Harrison
1996-04-12 0:00 ` Jacob Gore
1996-04-16 0:00 ` Don Harrison
1996-04-12 0:00 ` Don Harrison
1996-04-12 0:00 ` Jon S Anthony
1996-04-13 0:00 ` Robert A Duff
1996-04-12 0:00 ` Matt Kennel
1996-04-15 0:00 ` Don Harrison
1996-04-16 0:00 ` Jon S Anthony
1996-04-09 0:00 ` Jon S Anthony
1996-04-09 0:00 ` Valery CROIZIER
1996-04-09 0:00 ` Joachim Durchholz
1996-05-02 0:00 ` Joachim Durchholz
1996-05-05 0:00 ` Robert A Duff
1996-05-05 0:00 ` Robert Dewar
1996-05-06 0:00 ` Norman H. Cohen
1996-05-07 0:00 ` Ada terminology (was Re: Real OO) David Hopwood
1996-05-07 0:00 ` Dave Jones
1996-05-07 0:00 ` Tucker Taft
1996-05-07 0:00 ` The Right Reverend Colin James III
1996-05-08 0:00 ` bill.williams
1996-05-07 0:00 ` The Right Reverend Colin James III
1996-05-07 0:00 ` Real OO Don Harrison
1996-05-07 0:00 ` Jon S Anthony
1996-05-08 0:00 ` Don Harrison
1996-05-08 0:00 ` Norman H. Cohen
1996-05-08 0:00 ` Robert A Duff
1996-05-10 0:00 ` Matt Kennel
1996-05-10 0:00 ` Robert A Duff
1996-05-14 0:00 ` Matt Kennel
1996-05-15 0:00 ` Robert A Duff
1996-05-07 0:00 ` Amit Patel
1996-05-07 0:00 ` The Right Reverend Colin James III
1996-05-08 0:00 ` Don Harrison
1996-05-08 0:00 ` Juergen Schlegelmilch
[not found] ` <Dr4538.D27@assip.csasyd.oz>
1996-05-09 0:00 ` Richard Riehle
1996-05-10 0:00 ` Tucker Taft
1996-05-13 0:00 ` Don Harrison
1996-05-13 0:00 ` Tucker Taft
1996-05-14 0:00 ` Don Harrison
1996-05-14 0:00 ` Steve Tynor
1996-05-14 0:00 ` Robert A Duff
1996-05-15 0:00 ` Don Harrison
1996-05-14 0:00 ` Robert A Duff
1996-05-15 0:00 ` Steve Tynor
1996-05-15 0:00 ` Robert A Duff
1996-05-16 0:00 ` James McKim
1996-05-18 0:00 ` Matt Kennel
1996-05-20 0:00 ` James McKim
1996-05-22 0:00 ` Matt Kennel
1996-05-14 0:00 ` Joachim Durchholz
1996-05-14 0:00 ` Roger Browne
1996-05-15 0:00 ` Alexander Kjeldaas
1996-05-15 0:00 ` Steve Tynor
1996-05-19 0:00 ` Piercarlo Grandi
1996-05-14 0:00 ` James McKim
1996-05-15 0:00 ` Juergen Schlegelmilch
1996-05-09 0:00 ` Juergen Schlegelmilch
1996-05-20 0:00 ` Joachim Durchholz
1996-05-07 0:00 ` Joachim Durchholz
1996-05-09 0:00 ` Don Harrison
1996-05-09 0:00 ` Joachim Durchholz
1996-05-09 0:00 ` Jon S Anthony
1996-04-02 0:00 ` Detecting type mismatch at compile time (was Re: Real OO) Robert I. Eachus
1996-04-03 0:00 ` Richard Bielak
1996-04-04 0:00 ` Don Harrison
1996-03-28 0:00 ` Real OO Joachim Durchholz
1996-03-29 0:00 ` Norman H. Cohen
1996-03-30 0:00 ` John G. Volan
1996-03-26 0:00 ` Jon S Anthony
1996-03-29 0:00 ` Joachim Durchholz
1996-04-04 0:00 ` Don Harrison
1996-04-04 0:00 ` Steve Tynor
1996-04-08 0:00 ` Norman H. Cohen
1996-04-09 0:00 ` Matt Kennel
1996-04-04 0:00 ` Dominique Colnet
1996-04-08 0:00 ` Matt Kennel
1996-04-09 0:00 ` Norman H. Cohen
1996-04-09 0:00 ` Robert C. Martin
1996-04-10 0:00 ` J. Kanze
1996-05-02 0:00 Bob Crispen
[not found] <DoDLr7.JDB@world.std.com>
[not found] ` <4if7s5$bfk@ra.nrl.navy.mil>
[not found] ` <DoDqH4.29v@world.std.com>
1996-03-26 0:00 ` AdaWorks
1996-03-29 0:00 ` Brian Rogoff
[not found] <JSA.96Mar13143956@organon.com>
1996-03-15 0:00 ` Don Harrison
[not found] <4hneps$1238@watnews1.watson.ibm.com>
[not found] ` <Do3F1K.4xG@assip.csasyd.oz>
[not found] ` <4i455s$ijq@watnews1.watson.ibm.com>
1996-03-15 0:00 ` Don Harrison
[not found] ` <DoBH80.9u9@world.std.com>
1996-03-15 0:00 ` Mark A Biggar
1996-03-15 0:00 ` Richard Pitre
1996-03-16 0:00 ` Des Kenny
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox