Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Class::Interface -- isa() Considered Harmful

by castaway (Parson)
on Jan 16, 2003 at 12:32 UTC ( [id://227391]=note: print w/replies, xml ) Need Help??


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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://227391]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2024-04-25 10:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found