Choosing between AUTOLOAD vs Delegation
We are using OOP perl as a programming languge to design this framework, so this algo-like code is in Perl.
We are developing an automation framework in OOP Perl for an end-point device. This end-point device provides a HTTP, Telnet and SSH interface to execute the certain set of commands. For simplicity, we can assume that all commands are supported by all the three connection interfaces, generating the same output for a given command.
A function is written in the respective Connection class to handle a specific command. e.g.
sub getVersion { return $http->sendCommand('version'); }
But the current implementation of calling such function is little but different. Suppose, we would like to call the getVersion function, then it will be called something like this.
$device->getVersion(); //This is called through device object rath +er than connection object.
since this function is not defined in the device class, AUTOLOAD is called. In the Device class, AUTOLOAD is implemented like this
sub AUTOLOAD { my $connection = $device->getConnection(); return $connection->$methodName (..); // when called for getVers +ion, $methodName will become the "getVersion" }
Later, through some other forum, I identified about the class Class::Delegator. If I use Class::Delegator then we need to write the hash for each and every sub which will be deligating. I have 150+ such functions which all will be deligated to a single attribute.
Please help me to identify whether I should stick with AUTOLOAD or should I move to Class::Delegator class.
In reply to Choosing between AUTOLOAD vs Delegation by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |