Forum: Algorithmen, Datenstrukturen und Klassendesign
by romankassebaum,
26. Okt 2013
Es ist ganz wichtig, dass Du die Objektinstanz nicht in einer Variablen merkst. Sobald die Referenzzählung das Objekt freigibt, wäre die Instanz nicht mehr gültig.
var
b: ISchreibenLesen;
begin
b := TMessgerät2.Create;
b.readStuff;
end;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by romankassebaum,
25. Okt 2013
Ich hatte ja gestern schon gesagt, dass man Interfaces sehr gut nutzen kann, um Objekte, die keinen gemeinsamen Vorfahren habe, anzusprechen.
Für die zweite Aufgabe, die Referenzzählung, kann man übrigens auch einen ObjGuard (http://blog.kassebaum.eu/?p=87) nehmen.
Was mir an der vorgestellten Lösung überhaupt nicht gefällt, ist, dass man von TInterfacedObject ableiten muss. Dadurch "weiß"...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by romankassebaum,
24. Okt 2013
Hallo,
Interfaces bieten zwei grundlegende Vorteile:
1. Durch die Referenzzählung müssen Sie nicht explizit freigegeben werden.
2. Ein Interface kann von verschiedenen Objekten implementiert werden, die gerade nicht über einen gemeinsamen Vorfahren verfügen.
Da Du in Deinem Beispiel den gemeinsamen Vorfahren TMessgerät hast, denke ich, dass Du keine Interfaces benötigst.
In Deinem...