Da ich sowas gerade zurechtgefummelt habe, stell ich das mal zur Diskussion.
Ihr habt ein Objekt, mit einem Attribut, das ihr an ein anderes Objekt übergeben wollt.
Allerdings könnt ihr die Referenz nicht verwenden, wegen unterschiedlichen Threads, oder weil ihr das Attribut übers Netzwerk verschiebt, etc.
Das Attribut wird also beim Aufruf von "get..." kopiert.
Jetzt wollt ihr das Kopieren des Attributs möglichst reduzieren, weil es "teuer" ist. (egal welche Kosten)
Von einem get()-Aufruf zum anderen, muss sich das Attribut nicht zwangsläufig verändert haben. Ihr könnt also dem Aufrufer die Verantwortung zuschieben, die letzte Kopie aufzubewahren, bis er eine Neue bekommt.
Da entsteht dann sowas wie eine "OneTimeCopy", bei der entweder das Attribut kopiert oder null zurückgegeben, oder eine Exception ausgelöst, oder irgendein anderes Signal übetragen wird.
Aufrufen -> Kopie
nochmal Aufrufen -> keine Änderung -> "null"
nochmal Aufrufen -> neue Daten -> neue Kopie
Zusätzlich gilt, dass ihr kein aktives "Senden bei Änderung" nutzen könnt. Ist technisch nicht möglich, oder kostet noch mehr ...
Ihr müsst mit wiederkehrenden Abfragen umgehen, zwischen denen sich das Attribut gar nicht, oder sogar mehrfach geändert haben kann.
zurechtgefrickelt ist sowas schnell, aber wie würdet ihr das machen "dass es sich gut anfühlt"?
Ihr habt ein Objekt, mit einem Attribut, das ihr an ein anderes Objekt übergeben wollt.
Allerdings könnt ihr die Referenz nicht verwenden, wegen unterschiedlichen Threads, oder weil ihr das Attribut übers Netzwerk verschiebt, etc.
Das Attribut wird also beim Aufruf von "get..." kopiert.
Jetzt wollt ihr das Kopieren des Attributs möglichst reduzieren, weil es "teuer" ist. (egal welche Kosten)
Von einem get()-Aufruf zum anderen, muss sich das Attribut nicht zwangsläufig verändert haben. Ihr könnt also dem Aufrufer die Verantwortung zuschieben, die letzte Kopie aufzubewahren, bis er eine Neue bekommt.
Da entsteht dann sowas wie eine "OneTimeCopy", bei der entweder das Attribut kopiert oder null zurückgegeben, oder eine Exception ausgelöst, oder irgendein anderes Signal übetragen wird.
Aufrufen -> Kopie
nochmal Aufrufen -> keine Änderung -> "null"
nochmal Aufrufen -> neue Daten -> neue Kopie
Zusätzlich gilt, dass ihr kein aktives "Senden bei Änderung" nutzen könnt. Ist technisch nicht möglich, oder kostet noch mehr ...
Ihr müsst mit wiederkehrenden Abfragen umgehen, zwischen denen sich das Attribut gar nicht, oder sogar mehrfach geändert haben kann.
zurechtgefrickelt ist sowas schnell, aber wie würdet ihr das machen "dass es sich gut anfühlt"?