AGB  ·  Datenschutz  ·  Impressum  







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

observer pattern mit interfaces

Ein Thema von hoika · begonnen am 26. Sep 2006 · letzter Beitrag vom 26. Sep 2006
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

observer pattern mit interfaces

  Alt 26. Sep 2006, 08:50
Hallo,

hat das schon mal jemand gemacht?
Da ich ja letztens mit interfaces böse krachen gegangen bin,
frage ich mal lieber vorher.

Was ist dabei zu beachten?
Das Problem war beim "krachen", dass Delphi ja COM-interfaces
implementiert hat, und die beim Verlassen der Methode
die ganze Klasse zerstören.

Das will ich aber vermeiden

In einem anderen Thread hatte ich was von "multicast-Events" gehört,
unter .net kenne ich die, aber unter Delphi ?

Kann das der Moderator mal unter "Delphi-Allgemeines" verschieben ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: observer pattern mit interfaces

  Alt 26. Sep 2006, 09:05
Zitat von hoika:
Was ist dabei zu beachten?
Das Problem war beim "krachen", dass Delphi ja COM-interfaces
implementiert hat, und die beim Verlassen der Methode
die ganze Klasse zerstören.

Das will ich aber vermeiden
Delphi Interfaces haben nunmal Referenzzählung.
Eine Klasse können die nicht zerstören, aber wenn eine Instanz hinter dem Interface einen Referenzzähler von 0 hat wird sie sich selbst zerstören.
Du kannst dir eine eigene Basisklasse bauen, die die Referenzzählung ignoriert.
Aber Interfaces machen in Delphi eigentlich wenig Probleme wenn man sich daran hält Objekt und Interface instanzen nicht zu vermischen: Einmal Interface immer Interface, sonst ist schnell Polen offen.

Sicher wenn man weiß wo man manuell eine Referenz hinzufügen oder entfernen muss geht auch das problemlos, aber weiß es auch der nächste, der mit dem Code arbeitet?
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: observer pattern mit interfaces

  Alt 26. Sep 2006, 09:37
Hallo,

also bei mir hat der immer die dahinterstehende Klasse mitgelöscht.
Ich werde das mal an einem kleinen Bsp. ausprobieren.

Jaja, sollte man ja immer so machen


Heiko
Heiko
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: observer pattern mit interfaces

  Alt 26. Sep 2006, 09:39
Zitat von hoika:
also bei mir hat der immer die dahinterstehende Klasse mitgelöscht.
Nenne mich Erbsenzähler, aber Instanz <> Klasse.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#5

Re: observer pattern mit interfaces

  Alt 26. Sep 2006, 10:01
Zitat von hoika:
In einem anderen Thread hatte ich was von "multicast-Events" gehört,
unter .net kenne ich die, aber unter Delphi ?
Da ist es ein wenig mehr Code. Ich hab da mal was gebastelt damals noch mit D5:
http://www.delphipraxis.net/internal...=590858#590858
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: observer pattern mit interfaces

  Alt 26. Sep 2006, 11:24
Zitat von Phoenix:
Da ist es ein wenig mehr Code. Ich hab da mal was gebastelt damals noch mit D5:
http://www.delphipraxis.net/internal...=590858#590858
Dazu sollte man dann (imho) auch den Rat schreiben, dass man es bei aktuellen Versionen lieber mit eine TList (statt einem Array) implementieren sollte. Da wird einem dass dass setLength abgenommen (etwas schöner als in der Version) und man hätte auch eine Funktion um einen Zeiger wieder zu löschen.

Gruß Der Unwissende
  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 17:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz