Zitat von
Optiplex:
Was ist bitte daran falsch, ich glaube das ist das Grundprinzip der
OOP...
Bloß weil Du Objekte verwendest, heißt das ja noch nicht, das Du gleich das
OOP Paradigma korrekt umsetzt
. Dein Design-Fehler besteht in der starren Verbindung der (Daten-)Objekte mit den Visualisierungsobjekten. Du verletzt damit zwei Grundprinzipien der
OOP: Unabhängigkeit und Wiederverwendbarkeit von Klassen.
Du solltest ein
Observerpattern implementieren. Dabei melden sich die für die Visualisierung zuständigen Objekte beim Observer an. Wenn nun ein Datenobjekt verändert wurde, meldet es dies dem zuständigen Observer, der seinerseits alle angemeldeten Objekte über eine definierte Schnittstelle benachrichtigt, sodaß diese sich neuzeichnen können. Auf diese Weise sind die Klassen unabhängig und wiederverwendbar.
Ein Beispiel hierfür sind die datensensitiven Steuerelemente von Delphi (TDBEdit, TDBGrid etc.) Sie reagieren auf Änderungen am Dataset und stellen sich dann ggf. selbstständig neu dar. Dabei weiss ein Dataset gar nicht, ob und welche visuellen Controls vorhanden sind, es soll es auch gar nicht wissen.
Zitat von
Optiplex:
...jede Komponente ist eine Instanz von einem Objekt
Es schadet nicht, die
Grundbegriffe der OOP noch einmal nachschlagen.