🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #5891

Re: object oriented design decision

#5891
From: -for inetd server command
Date: Tue, 22 Nov 1988 20:47
34 lines
2278 bytes
In article <12636@steinmetz.ge.com> halverson@crd.ge.com (Pete Halverson) writes:
>From my experience, multiple inheritence seems to be most useful when
>you're trying to represent characteristics that are somehow orthogonal,
>i.e. land vehicles vs. sea vehicles, motorized vs. non-motorized, military
>vs. commercial.  Single-inheritance-only schemes require you to define a
>separate class for each combination (i.e. Motorized-Military-LandVehicle,
>NonMotorized-Commercial-SeaVehicle).   If you have many dimensions and many
>subclasses, the resulting cross-product is going to get real nasty, real
>fast. 
>
>Not to say these kinds of systems aren't complex (I'm currently in the
>midst of trying to decipher the Symbolics window class structure) but
>multiple inheritance can at least directly represent these orthogonalities.

I'm not really "for" or "against" multiple inheritance,
but I haven't seen anything that shows that multiple inheritance
really adds anything.

Couldn't you have one vehicle class with 3 instance variables?
One instance variable for each of the "dimensions"
(e.g.  surface: land vs. sea, propulsion: motorized vs. non-motorized, ...).
The vehicle class could forward messages to the appropriate instance variable.
Some OO languages allow methods to be expanded in line,
and can often avoid the extra method lookup,
so that the forwarding wouldn't have to incur a run time penalty.

Adding, for example, more surfaces for vehicles
(e.g. add to land and sea the surfaces air, space, ...)
wouldn't have to require changes to the vehicle class.
This doesn't seem to have the cross-product effect you were talking about.

Or maybe I just didn't understand the problem,
Paul Scherf, Tektronix, Box 1000, MS 61-028, Wilsonville, OR, USA
paulsc@orca.GWD.Tek.COM			tektronix!orca!paulsc
Technical Details
Message-ID: <10660@tekecs.TEK.COM>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!tektronix!tekecs!nobody
References: <4086@enea.se> <11522@cup.portal.com> <12636@steinmetz.ge.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!tektronix!tekecs!nobody
From: nobody@tekecs.TEK.COM (-for inetd server command)
Newsgroups: comp.lang.misc
Subject: Re: object oriented design decision
Message-ID: <10660@tekecs.TEK.COM>
Date: 22 Nov 88 20:47:14 GMT
References: <4086@enea.se> <11522@cup.portal.com> <12636@steinmetz.ge.com>
Reply-To: paulsc@radio_flyer.UUCP (Paul Scherf)
Organization: Tektronix, Inc., Wilsonville, OR
Lines: 34