Einzelnen Beitrag anzeigen

Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#1

Spring Collections erweitern

  Alt 19. Mär 2014, 08:08
Hallo,

ich versuche grade, meine Anwendung mit dem Spring-Framework und Spring Collections zu ergänzen.

Ich habe eine Klasse

Code:
TMyItem = class
  FLaenge: Double;
published
  property Laenge: Double read FLaenge write FLaenge;
end;
Diese möchte ich in eine TQueue<TMyItem> stecken. Dazu habe ich

Code:
TMyQueue = class(TQueue<TMyItem>)
public
  function Gesamtlaenge: Double; // iteriert über die Items und summiert auf
end;
...
MyQueue = TMyQueue.Create;
MyQueue.Enqueue(TMyItem.Create);
Gesamt:=MyQueue.Gesamtlaenge;
So weit so gut. Allerdings erhalte ich jetzt ein Speicherleck, da die einzelnen Items nicht automatisch freigegeben werden. Müsste ich also immer von Hand machen, will ich aber nicht.

Im Framework kann man ja auch über
Code:
TCollections.CreateQueue<TMyItem>(True);
eine Queue erstellen, die die enthaltenen Items automatisch freigibt. Das funktioniert ja auch. TCollections erzeugt mir allerdings nur eine TQueue, keine TMyQueue, die dann z.b. die Funktion Gesamtlaenge enthält.

Wie würdet ihr das am besten lösen? Doch von Hand im Destructor freigeben? TCollections vererben und um CreateMyQueue ergänzen? Class Helper Gesamtlaenge für die Klasse TQueue?

Scheint mir alles nicht so sauber. Aber da ich mich erst langsam herantaste, sehe ich noch keine gute Lösung.

Gruß Rainer
  Mit Zitat antworten Zitat