Hallo Choose,
danke für Deine Antwort! Ich arbeite bereits mit Entwurfsmustern. Die Abstrakte Fabrik und das Singleton-Muster sind bereits verbaut. Ich habe dies lediglich wegen der Übersichtlichkeit weggelassen.
Der Punkt ist:
Wenn ich die Klassen in meiner
Unit 'Main' registriere, muss ich bei der Erstellung einer neuen Tabelle in der
DB und der Erstellung der zugehörigen Klasse für die Behandlung an zwei Stellen Veränderungen vornehmen:
ConfigFile: Tabellenname als ArrayIndex hinzufügen
UND
In der
Unit 'Main':
Zu registrierende Klasse im Initialization-Abschnitt angeben.
Mein Gedanke war es alles an einer Stelle(in einer
Unit) vorzuhalten. Ob das in der Registrierung geschieht oder in einer Klasse sollte nicht entscheidend sein.
So wie ich dich verstehe sollte(MUSS) das Registrieren der Klassen in den Initialization-Abschnitt.
Kommt in der
DB eine neue Tabelle hinzu, dann ist demnach folgendes zu tun:
1. Klasse für die Tabelle Implementieren
2. Tabellenindex in das ClassArray aufnehmen
3. Klasse im Initialization-Teil registrieren
Dann kann ich auch mit dem folgenden Konstrukt arbeiten
Delphi-Quellcode:
function TPDInterface.GetPDObject(Index: Integer): TPDObject;
var
pdClass: TPDObjectClass;
begin
// Klasse über Idex des Arrays ansprechen(theoretisch geht dann auch der Name der Tabelle)
pdClass:= findClass('TPD'+ClassArray[TClassIndex(index)]);
//pdClass:= findClass('TPDAnsprechpartner');
if FPDObjects[index]= NIL then FPDObjects[index]:= PDClass.Create(Database);
result:= FPDObjects[index];
Ist das soweit richtig gedacht?