I have an interface Fruit
with two implementations Apple
and Banana
. I want to create a Fruit
instance. The choice whether the concrete implementation should be an Apple
or a Banana
should be made by the user. I did not yet design the user interface, so there is no restriction how this choice is made by the user.
I know there are the following options:
- usage of the abstract factory pattern
- usage of reflection to create an instance from a given class name
- usage of reflection to create an instance from a given class object
What are the pros and cons of these options?
Please note that while there are several similar questions that discuss the one or the other approach, I did not find a single comparison.
Here is a list of related questions:
- Why is Class.newInstance() "evil"?
- Can I use Class.newInstance() with constructor arguments?
- How to make an ArrayList of Classes?
- Does Class.newInstance() follow the "Abstract factory" design pattern?
Aucun commentaire:
Enregistrer un commentaire