Hi,
Bernhard Geyer hat hier im Forum bereits öfter darauf hingewiesen das ein Brückenmuster (Bridge Pattern) der beste Weg ist eine Unterstützung mehrerer
DBMS in einem Projekt zu realisieren. Ich habe diesen Vorschlag aufgenommen, komme aber jetzt bei der Umsetzung ins Stocken.
Mein Problem ist hier hauptsächlich das ich mir nicht sicher bin welche Klasse ich von welcher erben lassen soll. Ein Versuch mit Interfaces zu arbeiten schlug gänzlich fehl. Am Beispiel der
BDE TQuery. Hier lasse ich den Abstrakten Implementor von TQuery erben und den Konkreten Implementor vom Abstrakten. Hat aber den Nachteil das ich bei jedem Wechsel der Zugriffsart auch die Abstrakte Klasse ein klein wenig verändern muss, was so schon nicht richtig sein kann aber wenigstens funktioniert.
Größere Schwierigkeiten habe ich auf der Linken Seite. Von was soll die abstrakte Klasse Erben. Ich will sie als Komponente in die Komponentenpalette aufnehmen. Daher ist TComponent nahe liegend, aber der gemeinsame Nenner meiner Querys ist TDataSet.
So wie ich verschiedene Beispiele im Internet verstanden habe wird in der abstrakten Klassen auf der Linken Seite ein Objekt des abstrakten Implementor erstellt und die Aufrufe darauf weitergeleitet. Ist dass so korrekt?
Ich kann auch nicht herausfinden wie ich es im constructor der Spezialisierung machen soll, das meine Methodenaufrufe auch an die richtige Stelle kommen. Nicht die eine Hälfte auf Das von TDataSet geerbte und die andere Hälfte weitergeleitet auf über die Brücke auf die TQuery.
Es ist wirklich wichtig für mich die Zusammenhänge zu verstehen und anwenden zu können. Wenn jemand eine Deklaration oder ein Beispiel für mich hat welches auch Vererbung nutzt würde mir das sehr helfen.
J. Renner