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 | [reply] |
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.
| [reply] |