AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?
Thema durchsuchen
Ansicht
Themen-Optionen

Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?

Ein Thema von BrightAngel · begonnen am 7. Feb 2017 · letzter Beitrag vom 8. Feb 2017
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?

  Alt 8. Feb 2017, 11:43
Ich verstehe Dein Anliegen nicht so richtig.

Im Regelfall sollte ein Ereignis m.E. unmittelbar behandelt werden.
Die Reihenfolge und Anzahl resultierender Behandlungen kann ggf. variieren und sollte i.d.R. keine schädlichen Auswirkungen haben.

Wenn es doch mal zu irgendwelchen Seiteneffekten kommt muss man diese entsprechend explizit berücksichtigen (durch Einsatz von Flags o.ä.).

Sofern man die Geschäftslogik und die GUI ordentlich voneinander trennt, hat man solche Probleme womöglich gar nicht. Bei der Delphi-Architektur verlangt das natürlich schon eine gewisse Selbstdisziplin.


Vielleicht bin ich aber auch auf dem völlig falschen Gleis und habe die Fragestellung überhaupt nicht verstanden...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#2

AW: Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?

  Alt 8. Feb 2017, 12:47
Im Regelfall sollte ein Ereignis m.E. unmittelbar behandelt werden.
Genau um dieses "unmittelbar" geht es: Dadurch, dass mehrere Listener informiert werden entsteht das Problem, dass das nicht "zeitgleich" passieren kann.

Die Reihenfolge und Anzahl resultierender Behandlungen kann ggf. variieren und sollte i.d.R. keine schädlichen Auswirkungen haben.
Genau. Das ist quasi das Ziel. Das stimmt halt nur, wenn zwischen den Ereignissen keine Abhängigkeit besteht. Teilweise gibt es die aber schon; bzw sind.

Sofern man die Geschäftslogik und die GUI ordentlich voneinander trennt, hat man solche Probleme womöglich gar nicht. Bei der Delphi-Architektur verlangt das natürlich schon eine gewisse Selbstdisziplin.
Klar, man plant da definitiv vorher. Dafür Entwirft man ja seine Software vorher Trotzdem geht das nicht immer perfekt und/oder mancherorts nur künstlich zum Beispiel durch das Einführen zusätzlicher Indirektion. Das kann auch nur in der GUI passieren, wenn mehrere Stellen der UI korrelieren und bei Änderungen miteinander reagieren.

Ich gebe zu, dass das alles ein wenig künstlich wirkt, aber ich bin auf der Suche nach einem möglichst schönen Paradigma was Ereignisse angehen.

Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?

  Alt 8. Feb 2017, 13:01
Das erinnert mich an SendMessage und PostMessage. Was wäre bei diesen die bessere Variante. Antwort: je nach Anwendungsfall
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?

  Alt 8. Feb 2017, 13:06
Zu dem Schluss komme ich auch.

Als Paradigma würde ich vielleicht formulieren: Abhängigkeiten zwischen Modulen und Ereignissen nach Möglichkeit vermeiden. Wo das nicht möglich ist, Einzelfall-Lösungen finden, die mit den Abhängigkeiten umgehen können (und die können ganz unterschiedlich ausfallen).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.052 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Kontrollflussarchitektur bei Ereignissen: Geschmackssache?!?

  Alt 8. Feb 2017, 15:22
Das Hauptproblem, was ich mit der unmittelbaren Verarbeitung eines Eventhandlers sehe, ist, dass möglicherweise die UI "einfriert", sollte das Event abarbeiten etwas länger dauern.
In solchen Fällen würde ich die Abarbeitung aber lieber asynchron durchführen (thread), um möglichst schnell wieder aus dem Event Trigger zurückzukehren.

Somit kannst du beide Fälle mit einem Modell abarbeiten ohne dir explizit irgendwelche States zu merken oder das ganze Eventsystem aufzublasen.

Alternativ schraubst du in deine Listener nen event/message bus und lässt den die Arbeit asynchron/verzögert erledigen.
Dort können dann auch doppelte Events ausgefiltert werden im Sinne von, ich muss nich erst das Event von "hat sich auf 3x9 geändert" feuern, wenn danach noch eins für "hat sich auf 2x9 geändert" in der Queue liegt.

In Frameworks with ReactiveX (leider gibts da *noch* keine Implementierung für Delphi) gibts da z.B. verschiedene Möglichkeiten für.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 8. Feb 2017 um 15:27 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:41 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-2025 by Thomas Breitkreuz