Ich kenne dein Konzept nicht, halte aber Referenzen, die -wupps- plötzlich invalid werden können, für kein gutes Design, auch wenn ich die Referenzen per Notify auf Nil setzen kann.
Deine Programmlogik kann dann an beliebigen Stellen gegen die Wand fahren. Du weisst nie, wann das der Fall sein wird, vielleicht sogar während einer elementaren Operation...
Wenn Du dir sicher bist, das dieser verteilte Zugriff
Du könntest diese Objekte auch über das
Handle-Konzept realisieren:
Du instantiierst ein Objekt und bekommst von einer zentralen Vewaltung ein
Handle zurück.
Du verwendest das dahinterliegende Objekt, indem Du es per
Handle anforderst und automatisch gegen instantane Freigabe sperrst. Zum Ende der Verwendung gibst Du die Anforderung wieder frei.
Die Freigabe ist dann ein "gib es dann frei, wenn alle Anforderungen zurückgegeben wurden".
Du müsstest im Code nur dafür sorgen, das die Rückgabe so schnell wie möglich geschieht.
Delphi-Quellcode:
MyObject := ObjectManager.AcquireObjectByHandle(MyHandle);
If MyObjecty<>Nil Then
Try
DoSomethingWith(MyObject);
DoSomethingElseWith(MyObject);
Finally
ObjectManager.ReleaseObjectByHandle(MyHandle);
// MyObject ist nun nicht mehr gültig
End
Else
Raise EHonestlyIDontKnowHowToHandleThis.Create;