Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Formular neu zeichnen erzwingen

  Alt 11. Aug 2009, 12:41
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat