Ok, die Benutzung selber mit Generics aufpeppen ergibt Sinn. Ich hatte schon befüchtet, du willst die Klassen/Interfaces an sich irgendwie generisch machen
Nun kann man vielleicht die Parameter als 'Array Of Const' übergeben, sodaß man die generische Factory auch mit einem 'GetInstance' verwenden kann, aber da weiss ich nicht, wie man einen Konstruktorparameter dynamisch aus einem 'Array Of Const' füttert (außer, der Konstruktor akzeptiert selbst ein 'Array Of Const', was aber blöd wäre).
Geht, tut man sich aber keinen allzu großen Gefallen mit, da man vieles wieder auseinander pflücken muss.
Du hast das bestimmt in deinem Spring-Framework gelöst (oder eben anders=besser).
Es gibt dort den TActivator (der
Activator Klasse aus .Net nachempfunden), mit der man das machen kann (entsprechend meines Hinweises auf enhanced
RTTI weiter oben). Parameter werden über ein array of TValue weitergegeben.
Durch die operator Überladungen von TValue lässt sich das in vielen so Fällen benutzen, wie bei einem open array (array of const).
Generell sollte man aber genau die Anforderungen definieren. Wenn man sich auf eine gemeinsame Basisklasse einigen kann, ist das sicherlich sehr gut, da man dann Typensicherheit zur Compilezeit hat und sich das
RTTI Gedöns sparen kann.