Ich habe abstrakte Klasse BaseClass
mit MyClassA
und MyClassB
Implementierungen. Der Benutzer kann diese zwei Unterklassen erweitern oder sie verwenden, z. Er erstellt nur UserExtensionClassA
und verwendet MyClassB
wie es ist. Für die Initialisierung der Klassen ist eine Klasse ClassC
zuständig. Er empfängt eine Konfiguration (die z. B. die vollständigen Klassennamen der benötigten Implementierungsklassen enthält) und entscheidet, wann und ob die Klassen initialisiert werden (z. B. bereits 3 existierende Instanzen von BaseClass
Implementierungen => Erstellungsanforderung ablehnen).Wie vermeide ich Reflektionen?
Frage: Wie kann ich die Reflexion im Beispiel vermeiden? ClassC
kann die Klassen aus den Namen in der Konfiguration erstellen. Aber ich kann immer noch fast alles in der Bibliotheksimplementierung ändern und ich mag Reflektionsmaterial nicht.
Dies ist verwirrend, bitte poste etwas Code, um die Situation zu klären. auch scheint reflexion nicht so schlecht eine lösung ... – slawekwin
Bitte posten was du probiert hast? Hilft viel. –
Warum nicht den Code schreiben anstatt zu schreiben * "Ich habe abstrakte Klasse BaseClass mit MyClassA und MyClassB Implementierungen" *? Es ist nicht klar, warum und wie Sie Reflexion verwenden (Konfiguration ist Wörterbuch?), Können Sie es zeigen? Sowie gewünscht * Pseudo-Code *. Aber in allgemeinen Gründen wie * "Ich mag keine Reflektion Sachen" * sind nicht vernünftig. Liest du die Konfiguration einmal oder 1234567 mal? Haben Sie ein Problem mit der Leistung/dem Speicher? – Sinatr