AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formular neu zeichnen erzwingen

Ein Thema von Optiplex · begonnen am 10. Aug 2009 · letzter Beitrag vom 18. Aug 2009
 
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, 13: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz