Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

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

by adrianh (Chancellor)
on Jul 06, 2005 at 12:42 UTC ( #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
Node Status?
node history
Node Type: note [id://472777]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (9)
As of 2015-07-29 05:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls