Colaboración entre objetos (metodología P.O.O.)

21/11/2004 - 12:42 por José Manuel Nieto | Informe spam
Mi duda entonces es:
Si un objeto A necesita ser guardado al disco, y un objeto B se encarga
de realizar esa tarea... ¿qué mecanismo debería usar B para acceder a
las variables internas de A?

¿Y en el caso contrario? Si el objeto B lee del disco para reunir todos
los datos necesarios para la creación de A, ¿cómo haría B -desde un
punto de vista correcto- para cargar esos datos en A?

¿Debería tener A en este caso un constructor capaz de recoger los datos
imprescindibles para su creación?

¿Y si son muchos datos?

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
22/11/2004 - 07:35 | Informe spam
Busca informacion sobre serializacion que es exactamente lo que quieres hacer
y ya esta incorporado en .net de forma nativa. En la MSDN tienes estos
articulos por donde empezar:

Serializar objetos
http://msdn.microsoft.com/library/S...bjects.asp

Object Serialization in Visual Basic .NET
http://msdn.microsoft.com/library/e...252001.asp

Eduardo A. Morcillo [MS MVP VB]
Respuesta Responder a este mensaje
#2 José Manuel Nieto
22/11/2004 - 12:42 | Informe spam
Eduardo, muchas gracias por tu propuesta, pero requiero que el objeto B
(el que realiza el volcado de datos al disco), sea una especie "plugin".

Imagina que A es un Bitmap.
y que B guarda ese Bitmap

Si quiero que el Bitmap se guarde en formato JPEG, la clase B, debe
guardarlo en disco de una manera y si quiero guardarlo en un formato X,
lo haré con el "plugin" X, que guarda en disco los datos de otra manera.
Es decir, necesito aportar una especie de polimorfismo al guardado del
archivo. Según sea el "plugin" (una clase Encoder), así será el
restultado de escritura del archivo.

Y lo mismo para leer.

Cargar con el DecoderJPEG, podría hacerse con alguna llamada del tipo:
Objeto.FromStream(Stream stream, IDecoder decoder);

¿Existe alguna manera de hacer lo que necesito?


P.D. Con la serialización guardo el objeto completamente, me parece. Yo
solamente necesito guardar datos como ancho, alto, profundidad de color...
Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
22/11/2004 - 16:46 | Informe spam
Hechale un vistazo al patrón Strategy, se utiliza para casos como el que te
ocupa.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#4 José Manuel Nieto
22/11/2004 - 19:23 | Informe spam
Rodrigo Corral [MVP] wrote:
Hechale un vistazo al patrón Strategy, se utiliza para casos como el que te
ocupa.






¡Wow! Te refieres a esos patrones de los que tanto oigo hablar ahora de
GOF? The Gang Of Four. El libro de Design Patterns?
Respuesta Responder a este mensaje
#5 Rodrigo Corral [MVP]
22/11/2004 - 21:29 | Informe spam
A esos mismos...
http://www.dofactory.com/Patterns/Patterns.aspx
http://www.dofactory.com/Patterns/P...ategy.aspx


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida