>realmente desconozco si esto es asi en dolphin por ejemplo, me gustaria
>que me digan como funciona eso...
>nuevamente gracias y espero que este mensaje tenga tanto interes como
>el anterior.
>
>
Lo que hace OmniBase por ejemplo es poner anODBReference.
La anODBReference tiene un ODBDemandLoader que tiene la ubicacion del
objeto original (objectID).
(claro esta que esto es transparente para el desarrollador !!!).
Entonces cada vez que este objeto "este dentro de otro" se pone la
ODBReference correspondiente.
O sea, que no serializa (guarda) el objeto nuevamente, sino que
serializa un ODBReference cuando esta es accedida llama automaticamente
al objeto (este mecanismo es transparente la hora de la persistencia,
estamos hablando del funcionamiente interno de los "punteros"). El
objeto se levantar a demanda, si se le envia un mensaje, por lo que la
eficiencia es bastante buena.
Aunque paresca increible el mecanismo de "levantar a demanda" (demand
loader) es solo una linea de codigo.
ODBReference
doesNotUnderstand: aMessage
^demandLoader perform: aMessage selector withArguments: aMessage
arguments
La ODBReference cuando no entiende un mensaje supone que es para el
objeto, entonces deserializa (lee del disco) el objeto y le envia el
mensaje.
La diferencia esta que nunca hay puntero. Solo creas y relacionas
objetos, no hay punteros.
Si bien cada objeto tiene un unico ODBObjectID (asi se llama en
OmniBase) que indica el Container en el cual esta el objeto
(containerID) y un indice (index) que indica donde esta el objeto.
Esta es una gran diferencia con las RDBMS.
Por ejemplo en GemStone/S (una OODBMS) el numero noventa (90) es una
sola instancia.
Todos los objetos que tengan 90 apuntan a la misma instancia.
unaCuenta numero "90" .
unLibro costo "90" .
unCurso numeroAnotados "90".
etc.
Hacen referencia al mismo objeto.
Saludos Bruno
--~--~---------~--~----~------------~-------~--~----~
Ha recibido este mensaje porque está suscrito a Grupos de Google
"clubSmalltalk" grupo.
Si quiere publicar en este grupo, mande un correo electrónico a
[email protected]
Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED]
Para visualizar más opciones, visite este grupo
enhttp://groups.google.com/group/clubSmalltalk
-~----------~----~----~----~------~----~------~--~---