comp.lang.ada
 help / color / mirror / Atom feed
From: cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!paladin.amer
Subject: Re: OOD, Ada, and Inheritance
Date: 4 Dec 92 08:54:53 GMT	[thread overview]
Message-ID: <2284@snap> (raw)

>>>>: Can someone give me a good
>>>>: example of a case where one wants to have multiple implementations for
>>>>: SIMILAR but NOT IDENTICAL abstract behaviors, AND for which this
>>>>: abstract behavior is specified formally and in implementation-neutral
>>>>: terms (or at least could be in principle)? ...
>>>>: As part of the example I would, of
>>>>: course, expect to see the abstract specification of that part of their
>>>>: behavior that these different implementations would all have in
>>>>: common.

I'm not sure what is meant by `similar but not identical' in this
context, so I'll talk a little more generally.

The classic example is of course the graphic drawing library, where all
the drawable classes must have common behaviour such as being
drawable, rotatable, expandable, stretchable etc, but some classes
have additional behaviour, such as a drawable text class which also
has features that allow the text to be altered.  In this case the
drawable features for the various classes are similar (they draw the
shapes) but not identical (each shape is different).

Or if you want the same logical behaviour with different
implementations, consider the single and double linked list.  A
developer may not know when coding starts which implementation to
choose.  If both single and double linked lists share a common
interface then the developer can pick one safe in the knowledge that
switching to the other is a trivial change.

If your data structure library has tables of objects and lists of
objects then you could also have a class which inherits from both
table and list.  This allows you to pass this to a routine that expects a
list and to one that expects a table.

It is important to remember that inheritance is not about reusing the
implementation of your class (you can do that by delegation).  It is
about reusing the *interface*, because that way you get to reuse all
the other code out there that uses the interface.

Paul.

-- 
Paul Johnson (paj@gec-mrc.co.uk).	    | Tel: +44 245 73331 ext 3245
--------------------------------------------+----------------------------------
These ideas and others like them can be had | GEC-Marconi Research is not
for $0.02 each from any reputable idealist. | responsible for my opinions

             reply	other threads:[~1992-12-04  8:54 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1992-12-04  8:54 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!paladin.amer [this message]
  -- strict thread matches above, loose matches on Subject: below --
1992-12-04 20:49 OOD, Ada, and Inheritance Bruce Weide
1992-12-03 21:19 dog.ee.lbl.gov!overload.lbl.gov!agate!usenet.ins.cwru.edu!magnus.acs.ohio
1992-12-02 20:25 dog.ee.lbl.gov!network.ucsd.edu!usc!zaphod.mps.ohio-state.edu!cis.ohio-st
1992-12-02 14:58 pipex!bnr.co.uk!bnrgate!nott!cunews!cunews!knight
1992-11-20 20:28 klamath.cs.washington.edu!chambers
1992-11-17 20:37 dog.ee.lbl.gov!pasteur!agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.ed
1992-11-16 15:09 eru.mt.luth.se!lunic!sunic!mcsun!uknet!comlab.ox.ac.uk!ajs
1992-11-16  8:48 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!Sirius.dfn.d
1992-11-13 22:45 klamath.cs.washington.edu!chambers
1992-11-13 20:37 Bruce Weide
1992-11-11  4:20 sun-barr!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!darwin.sura.net!
1992-11-10 20:58 sun-barr!cs.utexas.edu!natinst.com!news.dell.com!milano!cobweb.mcc.com!br
1992-11-09 18:56 Ralph Johnson
1992-11-09 18:30 eru.mt.luth.se!lunic!sunic!lth.se!newsuser
1992-11-09 16:36 Jorge Luis Diaz-Herrera
1992-11-09 14:53 think.com!sdd.hp.com!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!elephan
1992-11-07 18:49 John Goodsen
1992-11-07  1:25 mole-end!mat
1992-11-06 20:13 John Goodsen
1992-11-06  9:00 agate!doc.ic.ac.uk!uknet!root44!hrc63!mrcu!paj
1992-11-05 19:20 David Emery
1992-11-05 19:09 saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!new
replies disabled

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