[Python-es] Re: [Python-es] Evolución dinámica de los objetos a diferentes clases

Antonio Beamud Montero antonio.beamud en agora-2000.com
Jue Ago 29 08:33:39 CEST 2002


Thinking in Python (http://www.mindview.net/Books/TIPython)

Salu2

El mié, 28-08-2002 a las 20:08, Ernesto Revilla escribió:
> Arkaitz, gracias,
> 
> acabo de ver el ejemplo en el libro que estoy leyendo 'Object Primer 2nd' de
> Scot Ambler que realmente puedo recomendar si alguien quiere conocer o
> profundizar en el desarrollo orientado a objetos. Aunque pueda parecer una
> introducción, el arte del libro es que es muy didáctico y que además enlaza
> las diferentes técnicas para crear un método de desarrollo.
> 
> ¿Me podéis recomendar algún libro de 'analysis patterns' o 'design patterns'
> ?
> 
> Como aprender siempre es bueno, los 'patterns' o en español 'patrones' son
> soluciones a problemas conocidos. Solamente se expresa la idea y pero no usa
> ningún lenguaje de programación concreto.
> 
> Saludos, Erny
> 
> ----- Original Message -----
> From: "Arkaitz Bitorika" <Arkaitz.Bitorika en cs.tcd.ie>
> To: <python-es en aditel.org>
> Sent: Sunday, August 25, 2002 4:52 PM
> Subject: Re: [Python-es] Evolución dinámica de los objetos a diferentes
> clases
> 
> 
> > Ernesto,
> >
> > Has pensado en usar el design pattern ("patron de diseino"?) "State"? Es
> > basicamente la idea que dio Antoni de utilizar roles, o cierto estado
> > asociado con cada instancia de Persona. De esta manera, cuando cambies
> > el estado o rol de Cliente a Proveedor o lo que sea, cambias solo esa
> > asociacion.
> > Este patron esta explicado muy bien en Design Patterns por Gamma et al.
> >
> > saludos,
> > Arkaitz
> >
> > On Thu, 2002-08-22 at 18:50, Ernesto Revilla wrote:
> > > Hola,
> > >
> > > no tiene que ver directamente con Python, más bien con programación
> > > orientado a objeto.
> > >
> > > Suponed que hay una clase Persona y otras dos clases que heredan de
> allí,
> > > Cliente y Proveedor.
> > >
> > > 1. ¿Cómo puede modelarse que un objeto 'evoluciona' de un la a otro, por
> > > ejemplo, Persona evoluciona a ser Cliente.
> > > ¿se puede cambiar la clase de un objeto dinámicamente?
> > > (ya sé que se puede borrar y crear un objeto nuevo de la otra clase,
> ¿hay
> > > otra manera?)
> > >
> > > 2. ¿Cómo podría hacerse que un objeto Cliente evolucionase a una clase
> > > Proveedor? (Es decir, una clase que no está en la rama de la clase
> actual
> > > del árbol de herencia.)
> > >
> > > 3. He visto alguna vez algo como esto:
> > > C.__bases__.append(D)   # siendo C clase y D clase
> > >
> > > Aunque no resuelva el tema de 1. y 2., me parecía interesante, poder
> > > enriquecer la funcionalidad de una clase, agregandole clases bases.
> > >
> > > Respecto a 1. y 2. hemos llegado a la conclusión modelarlo de otra
> manera:
> > > crear clases Persona, DatosCliente y DatosProveedor, y hacer que Persona
> > > tenga una referencia opcional a cada uno. Si una persona nos compra algo
> y
> > > no tiene parte de cliente, esta es creada y asociada. Preguntar si un
> > > persona es cliente coincide con mirar si tiene una parte de datos de
> > > cliente.
> > >
> > > ¿Por qué me importa eso? Por el tema de la persistencia. El tema de
> dejar
> > > evolucionar dinámicamente a los objetos, me crea ciertos trastornos a la
> > > hora de las actualizaciones.
> > >
> > > Saludos,
> > > Erny
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Python-es mailing list
> > > Python-es en aditel.org
> > > http://listas.aditel.org/listinfo.py/python-es
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo.py/python-es
> 
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
-- 
Microsoft merges technologoies: 
Windows CE + Windows ME + Windows NT = Windows CEMENT

----
Antonio Beamud Montero
Agora Systems S.A.

http://www.agoratechnologies.com





Más información sobre la lista de distribución Python-es