Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Should I use Fields, InsideOuts, or Properties?

by adrianh (Chancellor)
on Jul 06, 2005 at 12:42 UTC ( [id://472777]=note: print w/replies, xml ) Need Help??


in reply to Should I use Fields, InsideOuts, or Properties?

Instead of use::fields, Adrianh and Abigail advocate inside out objects: Class::InsideOut - yet another riff on inside out objects.

You might want to look at Abigail's Lexical::Attributes which wraps up inside-out objects in a nice Perl 6-ish source filter.

This is because, says adrianh on the damnit thread, with fields you have problems when you don't control the base class -- though I don't understand exactly what adrianh meant by that

Hopefully this makes it clear :-)

And oh, another way to do it, apparently, is Attribute::Property, as juerd advocates on the use fields damnit conversation.

Any accessor generating system, like A::P or Class::MakeMethods will help if you have the discipline to only access the object by method.

You'll only get runtime errors on typos though, not compile-time (as you do with inside-out objects).

But if anybody has anything to add, or guidance on what I should do to escape the $foot->{shooting} typos, please chime in.

Get better at typing? :-)

Another approach would be to try a development technique that makes typos like this more immediately obvious. I find that doing TDD means that mistakes like this show up immediately in a failing test, making the pain levels drop to about zero for this kind of "invisible" mistake.

  • Comment on Re: Should I use Fields, InsideOuts, or Properties?

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (2)
As of 2024-04-24 13:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found