Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: OOP's setter/getter method - is there a way to avoid them?

by stevieb (Canon)
on Oct 27, 2015 at 13:49 UTC ( [id://1146111]=note: print w/replies, xml ) Need Help??


in reply to OOP's setter/getter method - is there a way to avoid them?

That is a great book. I read it several times, and foundation of the knowledge I have of references to this day is owed to that book.

Personally, unless absolutely necessary, I try to stay away from having to set attributes individually. I prefer to try to set these within larger public methods that set/reset the attribute then do something functional with it, like this:

sub write_graffiti { my $self = shift; my %params = @_; $self->{colour} = $params{colour} if defined $params{colour}; # spray paint wall with the colour, # whether new or existing }

When I do need to expose a direct setter/getter for an individual attribute, I do both in one fell swoop, in a more generic sub:

sub colour { my $self = shift; my $colour = shift if @_; $self->{colour} = $colour if defined $colour; return $self->{colour}; }

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2024-04-19 15:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found