Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Observer-Pattern (https://www.delphipraxis.net/76472-observer-pattern.html)

Der_Unwissende 5. Sep 2006 11:12

Re: Observer-Pattern
 
Zitat:

Zitat von oki
somit scheint es Sinn zu machen in das Thema Intervaces rein zu schauen.

Da geb ich Dir und generic auch völlig recht (dem marabu sowieso immer :wink:), ich habe die nur so weit aussen vor gelassen, weil die in Delphi etwas Stiefmütterlich behandelt werden. Das liegt wiederum nur daran, dass Delphi keine "nativen" Interfaces hat sondern auf die von COM zurückgreift. In Java kannst du Variablen die vom Typ ein Interface sind genauso behandeln wie jedes andere Objekt auch, in Delphi ist das Casten (Objekt -> Interface) nicht so ohne weiteres möglich.

Aber auch da findest du sicherlich eine Menge in der DP.

Ansonsten freut es mich, wenn es dir geholfen hat!

stoxx 5. Sep 2006 11:17

Re: Observer-Pattern
 
ohne jetzt genau (aus Zeitgründen) alles gelesen zu haben, möchte ich sagen, dass viele Design Patterns ihre Berechtigung haben, das Observer Pattern aber gerade in Delphi nicht !
Es macht den Quelltext schlechter änderbar, ist umständlich und bei näherer Betrachtung sinnlos.
Ich würde es nur in Sprachen verwenden, wo Mehrfachvererbungen möglich sind.
Um den gleichen Zweck zu erfüllen (eine Benachrichtigung) , würde man in Delphi einfache Event Multicaster nehmen.
(und in .NET ja schon fester Bestandteil des Konzeptes)
Event Multicaster sind sehr simpel und nicht so starr im Konzept, wie ein festes Observer Pattern mit der Vererbungslösung ..
(auf Deutsch, Du verteilst die Events einfach auf mehrere Objekte, die von irgendeinem Event benachrichtig werden sollen und wollen)

Gruß stoxx

Bernhard Geyer 5. Sep 2006 11:18

Re: Observer-Pattern
 
Zitat:

Zitat von Der_Unwissende
Das liegt wiederum nur daran, dass Delphi keine "nativen" Interfaces hat sondern auf die von COM zurückgreift.

Da bist du etwas unwissend. Interfaces wurden in Delphi zwar wegen COM ergänzt, aber man kann auch mit Interfaces arbeiten ohne mit COM zu arbeiten.

Zitat:

Zitat von Der_Unwissende
In Java kannst du Variablen die vom Typ ein Interface sind genauso behandeln wie jedes andere Objekt auch, in Delphi ist das Casten (Objekt -> Interface) nicht so ohne weiteres möglich.

Versteh ich jetzt nicht ganz? Wenn eine Klasse ein Interface besitzt kann man doch genauso damit arbeiten.

Der_Unwissende 5. Sep 2006 11:29

Re: Observer-Pattern
 
Zitat:

Zitat von Bernhard Geyer
Da bist du etwas unwissend. Interfaces wurden in Delphi zwar wegen COM ergänzt, aber man kann auch mit Interfaces arbeiten ohne mit COM zu arbeiten.

Steh ich doch zu :wink: Wieder was gelernt, nur finde ich werden Delphi Interaces schon anders verwendet als andere Delphi Konstrukte.

Zitat:

Zitat von Bernhard Geyer
Versteh ich jetzt nicht ganz? Wenn eine Klasse ein Interface besitzt kann man doch genauso damit arbeiten.

Hm, sehe auch gerade nicht mehr, wo ich mal ein Problem hatte. Müsste ich noch mal raussuchen, jetzt geht es auch hier gerade. War mir sicher da schon mal eine Fehlermeldung über nicht kompatible Typen bekommen zu haben. Dabei war es definitiv kein Interface dass an zwei Stellen gleich definiert wurde (o.Ä.). Auch eine GUID war drin usw. Komisch, ich nehm jedenfalls erstmal alles zurück was ich gesagt habe! Sorry, mein Fehler!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr.
Seite 2 von 2     12   

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