February 2000
Intermediate to advanced
364 pages
11h 47m
English
A final gloss on the Megalith class would be to
add accessor methods
to
allow controlled access to the values stored within each object. That
is, the example code listed above contains code that explicitly
accesses member variables within the object:
print "Megalith Name: $megalith->{name}\n";This may cause problems if the internal structure of the
Megalith object alters in some way. Also, if you
write $megalith->{nme} by
mistake, no errors or warnings will be generated. Defining an
accessor method called getName( ), such as:
### Returns the name of the megalith
sub getName {
my ( $self ) = @_;
return $self->{name};
}makes the code arguably more readable:
print "Megalith Name: " . $megalith->getName( ) . "\n";
and also ensures the correctness of the application code, since the actual logic is migrated, once again, into the object.