Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: A new take on affordance.

by Caillte (Friar)
on May 16, 2002 at 15:35 UTC ( #167029=note: print w/replies, xml ) Need Help??

in reply to A new take on affordance.

Having the code for an object open and publicly readable is both an advantage and a disadvantage, sure, but from looking around at the other perl programmers I have known it is not really a problem. Sure, you can open up the object, look around, even edit it to suit your own needs, and you can access variables within the object without going through the method interface. However most people dont and, I think, with experience even those who do will stop over time. The reasons for this become obvious as you become more experienced with the rationale behind OO design. While you could access the data directly, avoiding the methods, it is not a good idea. What if the designer changes the data type between revisions? Such a change is perfectly acceptable in OO design as the underlying data is supposed to be opaque to the user of the object. This means that version 1 could store it's data as a scalar while version 2 stores it as part of a hash. However, if has been written correctly, thingy::get_data will return the same thing regardless of version.

Once you know this then it quickly becomes a good idea to just use the methods and leave the data as it is.

On the other hand, what perl programmers have over C++ (for example) programmers is direct access to the source code of that object. Now, while playing with it is not a good thing, these modules then become a vast and wonderful knowledge base that the programmer can dip into at will to help solve his or her problems.

So, if you have any sense, pretend that you cannot see into a perl object, but also make the most of the fact that you can to become a better programmer ;)

I did, and still do ;)

This page is intentionally left justified.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://167029]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2018-03-21 06:35 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (264 votes). Check out past polls.