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

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.

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