AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Methode "Free" selbst implementieren (Assembler-Problem?)
Thema durchsuchen
Ansicht
Themen-Optionen

Methode "Free" selbst implementieren (Assembler-Problem?)

Ein Thema von VizeTE · begonnen am 22. Feb 2005 · letzter Beitrag vom 15. Mär 2005
Antwort Antwort
Seite 5 von 5   « Erste     345   
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#41

Re: Methode "Free" selbst implementieren (Assemble

  Alt 15. Mär 2005, 08:25
Zitat von maximov:
Willst du mit interfaces arbeiten, oder komplett ohne?
Prinzipiell habe ich nichts gegen Interfaces, aber bisher habe ich nicht die Notwendigkeit dazu erkannt.

Zitat von maximov:
Ich würd das dann so machen, dass dein objekt lediglich eine beziehung zur deiner liste hast. Beim einfügen in die liste wird im objekt ein observer registriert, sodass die die liste benachrichtigt wird, sobald sich das objekt zerstört. Wird das objekt normal aus der liste entfernt, so kann es den der observer auch wieder aus dem objekt entfernt werden.
Mit der Theorie des Observers bin ich (noch) nicht vertraut. Bisher läuft das bei mir folgendermaßen:
Das Listenelement kennt die Liste zu der es gehört. Beim löschen eines Elements aus der Liste wird eine Event aufgerufen. Wird dort festgestellt das das Listenelement zu dieser Liste gehört wird es freigegeben, sonst wird nur der Eintrag in der Liste gelöscht.
Nach meinem Verständnis klingt diese Lösung ähnlich wie der Observer. Allerdings scheint der Observer ein extra Objekt zu sein?!

Zitat von maximov:
...Alle listen haben immer ihr objekt als owner, sodass sie evtl. benachritigungen an ihn weiter geben können.
Das kapier ich noch nicht so recht. Alle Listen sollen sich selbst als Owner haben? Damit sie dem Observer sagen können was mit ihnen passiert und der Observer die Elemente freigibt? Bisher habe ich dafür gesorgt das für jedes Element das oben genannte Event zum entfernen aufgerufen wird. Child-Elemente werden somit freigegeben.
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#42

Re: Methode "Free" selbst implementieren (Assemble

  Alt 15. Mär 2005, 10:58
Moin,

also zum thema observer ist dies vielleicht nützlich: http://www.delphipraxis.net/internal...erver&start=15

Zitat von VizeTE:
Zitat von maximov:
Willst du mit interfaces arbeiten, oder komplett ohne?
Prinzipiell habe ich nichts gegen Interfaces, aber bisher habe ich nicht die Notwendigkeit dazu erkannt.
Das geht schneller als man denkt

Zitat:

Zitat von maximov:
Ich würd das dann so machen, dass dein objekt lediglich eine beziehung zur deiner liste hast. Beim einfügen in die liste wird im objekt ein observer registriert, sodass die die liste benachrichtigt wird, sobald sich das objekt zerstört. Wird das objekt normal aus der liste entfernt, so kann es den der observer auch wieder aus dem objekt entfernt werden.
Mit der Theorie des Observers bin ich (noch) nicht vertraut. Bisher läuft das bei mir folgendermaßen:
Das Listenelement kennt die Liste zu der es gehört. Beim löschen eines Elements aus der Liste wird eine Event aufgerufen. Wird dort festgestellt das das Listenelement zu dieser Liste gehört wird es freigegeben, sonst wird nur der Eintrag in der Liste gelöscht.
Nach meinem Verständnis klingt diese Lösung ähnlich wie der Observer. Allerdings scheint der Observer ein extra Objekt zu sein?!
Ja, aber was ist, wenn erst das objekt freigegeben wird und die listen benachrichtigt werden müssen? Da jetzt aber das objekt in vielen listen steckt, reicht ein einfahces event nicht aus. Genau dafür wäre der Observer gut. Da könntest du auch ein multi-cast-event als observer nehmen. Oder du definierst ganz klar, dass objekte nur über listen freigegeben werden dürfen und selbst dann würde es nicht funktionieren, da die Owner-liste das objekt ja freigeben kann und dann alle anderen listen vor dem problem stehen. Also brauchst du mindestens eine liste, mit den listen, in dem ein objekt steck...und dann hast du auch schon fast einen Observer.


Zitat:

Zitat von maximov:
...Alle listen haben immer ihr objekt als owner, sodass sie evtl. benachritigungen an ihn weiter geben können.
Das kapier ich noch nicht so recht. Alle Listen sollen sich selbst als Owner haben? Damit sie dem Observer sagen können was mit ihnen passiert und der Observer die Elemente freigibt? Bisher habe ich dafür gesorgt das für jedes Element das oben genannte Event zum entfernen aufgerufen wird. Child-Elemente werden somit freigegeben.
Naja, du sagtest ein Objekt könne mehrere listen haben, also ist es logisch eine seperate listen-klasse zu haben, die dann beliebig oft von einem objekt aggregiert werden kann. also: objekt != liste
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 08:15 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