Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^4: Abusing Exporter for Conditional Inheritance

by mojotoad (Monsignor)
on Mar 17, 2005 at 19:13 UTC ( [id://440489]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Abusing Exporter for Conditional Inheritance
in thread Abusing Exporter for Conditional Inheritance

Yet the only difference between the two cases is the contents of @ISA. And localizing @ISA is probably not a good idea. Last night tye pointed out that it's probably not thread safe, and look here for an explanation from gbarr as to why it's not efficient.

Matt

  • Comment on Re^4: Abusing Exporter for Conditional Inheritance

Replies are listed 'Best First'.
Re^5: Abusing Exporter for Conditional Inheritance
by perrin (Chancellor) on Mar 17, 2005 at 19:43 UTC
    Yet the only difference between the two cases is the contents of @ISA

    Yes, and? Why look for a complex and likely to fail solution when you have a simple and certain to work one?

      With all due respect, perrin, the factory solution strikes me as more complex. I am willing to consider it, however, but I still don't understand how you can accomplish it without localizing @ISA. Unless I'm missing something obvious?

      Thanks,
      Matt

        Sorry, I fear I've confused you. A class factory is a common way to handle needing a different class in certain situations without changing your calling code, e.g. have a class that uses a database in production and one that uses a CSV file in development, without changing the code that uses it. It's also a convenient way to wrap configuration that needs to be done when creating a new object, so that the calling code doesn't need to think about it.

        Since you say that in this case the change has to be done by inheritance, and there is no need to hide which version is being used from the calling code, I am recommending that you simply write out the classes and don't use a factory.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-04-18 13:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found