Ayuda con la herencia

09/07/2007 - 15:06 por Francesc | Informe spam
Holas, tengo un problemilla con la organización de la herencia..

Vasmos a ver, tengo una clase PROVEEDOR,otra SEDE,otra DOCUMENTOS y otra
CONTACTOS.

SEDE, DOCUMENTOS y CONTACTOS heredan de proveedor,pero claro, el
planteamiento es que SEDE,DOCUMENTOS y CONTACTOS pertencen a cada instancia
del PROVEEDOR.

Es decir, un PROVEEDOR, tiene dentro varias SEDES, varios DOCUMNETOS y
varios CONACTOS. Como puedo hacer para que cuando llene un objeto de
proveeodr, pueda llenar a la vez todos los datos solicitados en
sedes,documentos y contactos????

Seguro que es una tonteria, o no..no se, no se como hacerlo ya que no es una
herencia de vehiculo - coche o vehiculo - camino,si no que seria vehiculo
-coche,camion,moto...

Mi unica ocurrencia:

1. Dentro de la clase principal creo un objeto de cada subclase que
pertenece a la principal,por lo que no heredeo.

class proveedor
{

public Sede a = new Sede();
public Contacto b = new Sede();

class sede
{
}

class contacto
{
}

}

y cuando instancie en el "main"

proveedor c = new proveedor();
c.b.loquesea...
c.a.loquesea...

milista.Add(c);

por lo que dentro de c tendria toda la estructura

No se ya me decis.

Millones de gracias!

Francesc Jaumot
 

Leer las respuestas

#1 Alberto Poblacion
09/07/2007 - 16:03 | Informe spam
Lo que quieres no es "herencia" sino "agregación", que son conceptos
distintos. Tus clases SEDE, DOCUMENTOS y CONTACTOS no heredan de PROVEEDOR,
sino que están agregadas dentro de PROVEEDOR.

La forma de implementarlo que indicas es razonablemente correcta, es decir,
dentro del proveedor declaras variables de los tipos Sede, Documentos, etc.
Estas clases se inicializan donde sea oportuno, que según tu código es el
constructor, pero podría haber otras formas de hacerlo según como deba
comportarse el programa. Por ejemplo, si no todos los proveedores tienen que
tener documento, puedes dar acceso al documento exclusivamente a través de
una propiedad y que sea la propiedad la que lo inicialice (si no está ya
inicializado) en el momento de usarla, y si no la usas nunca, no se crea el
documento. De esta misma forma se pueden hacer múltiples variantes,
dependiendo de los casos de uso que requiera tu diseño de aplicación.


"Francesc" wrote in message
news:
Holas, tengo un problemilla con la organización de la herencia..

Vasmos a ver, tengo una clase PROVEEDOR,otra SEDE,otra DOCUMENTOS y otra
CONTACTOS.

SEDE, DOCUMENTOS y CONTACTOS heredan de proveedor,pero claro, el
planteamiento es que SEDE,DOCUMENTOS y CONTACTOS pertencen a cada
instancia
del PROVEEDOR.

Es decir, un PROVEEDOR, tiene dentro varias SEDES, varios DOCUMNETOS y
varios CONACTOS. Como puedo hacer para que cuando llene un objeto de
proveeodr, pueda llenar a la vez todos los datos solicitados en
sedes,documentos y contactos????

Seguro que es una tonteria, o no..no se, no se como hacerlo ya que no es
una
herencia de vehiculo - coche o vehiculo - camino,si no que seria vehiculo
-coche,camion,moto...

Mi unica ocurrencia:

1. Dentro de la clase principal creo un objeto de cada subclase que
pertenece a la principal,por lo que no heredeo.

class proveedor
{

public Sede a = new Sede();
public Contacto b = new Sede();

class sede
{
}

class contacto
{
}

}

y cuando instancie en el "main"

proveedor c = new proveedor();
c.b.loquesea...
c.a.loquesea...

milista.Add(c);

por lo que dentro de c tendria toda la estructura

No se ya me decis.

Millones de gracias!

Francesc Jaumot

Preguntas similares