Re: How to make a class an alias of another one?
Lew wrote:
This gives the appearance of an antipattern: one should not hardcode
subclasses into their parent classes.
Given the simplicity of the request, I didn't see the need to make a
third class whose function was just a factory for ClassA and subclasses.
Gold plating -- needlessly complex design -- is an anti-pattern too.
If refactoring is required later, well, refactor. It happens.
What safety there is in this use lies in that 'Temporary' is
package-private. This isn't completely safe, in that other subclasses
of 'A' can do Bad Things.
Isn't this a danger for all non-final classes? Any class can subclass
another non-final class, do bad things, break contracts, throw spurious
RuntimeExceptions, etc. Given that ClassA must be public and
extensible, I don't see a way around this.
I suppose that just making ClassA concrete and final would be ok, but if
one is planning on making changes later, it seems like having a defined
interface would be handy. I originally had ClassA as an interface, then
decided it needed a simple factory method. Hence, abstract.