in reply to Class::Interface -- isa() Considered Harmful

I'm not sure I understand what your getting at.

The example with Airport and Arcade is strange for an example of inheritance/bad inheritance. The two are not related in this way, in OO parlance, an Airport is not an Arcade, we usually say 'an Airport _has an_ Arcade'. (Contains an object of type 'Arcade')

Otherwise, I agree that interfaces are 'a good thing', I think the Java way of doing things is good. There you can create functions which take any object which implements a certain interface, and its simple to make a class to extend an interface.

But I digress, I will go see what your class does now :)
C.

  • Comment on Re: Class::Interface -- isa() Considered Harmful

Replies are listed 'Best First'.
Re: Re: Class::Interface -- isa() Considered Harmful
by castaway (Parson) on Jan 16, 2003 at 16:04 UTC
    Hmm, the POD in your module has more of the same.. I see what you're getting at, kind of. Usually if I have to implement such a thing as in your examples, I wouldnt dream of saying that Airport inherits from Arcade just to make the methods of Arcade available in Airport.. I can't see why anyone would.
    I'd create an Arcade object in Airport, and provide something like a 'getArcade()' method in Airport, for anything that needed to communicate with Arcade through Airport.

    Regardless.. Interfaces are good for other reasons, as some people here have already indicated..

    C.