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]
#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...
#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
#4 José Manuel Nieto
22/11/2004 - 19:23 | Informe spam
Rodrigo Corral [MVP] wrote:
Mostrar la cita
¡Wow! Te refieres a esos patrones de los que tanto oigo hablar ahora de
GOF? The Gang Of Four. El libro de Design Patterns?
#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
Ads by Google
Search Busqueda sugerida