My question is, does [the Singleton] pattern offer any advantages over just using class methods?
One advantage is that you can pass the singleton as an argument to functions/methods that expect an object, and they can use the Singleton as an object (e.g., they can call its methods). This isn't as big an advantage in Perl as it is in other languages, because
"NameOfClass"->method();
-or-
$object->method();
where $object holds a string, do the right thing.
When you're using class methods, you can't access instance data, and must access globals. Again, maybe not a huge disadvantage.
But with class methods, you can reach into them to do
$object->{'attribute'}
But you probably shouldn't be doing that anyway.
|