I would go ahead like this:
- get your code to compile :-)
- You need to define a factory interface which builds your target objects
- As your classes are typically loaded at application startup, it should be sufficient, that your DelegateFactory (you called it AbstractFactory) reads a properties file from the classpath at startup.
- For each entry in the properties file use the key as lokup and the class name as value of the entry.
- Sit back