Sobre la Herencia


([N2] overall) #1

Buenos días,
Tengo varias dudas sobre la Herencia, tanto en las cajas de datos como de objetos.
Tengo una caja de Objetos (Base_Img) con todas las imágenes predeterminadas que voy a utilizar en mis aplicaciones, todo OK. Tengo una caja de Datos (Base_datos) con unas tablas que también voy a utilizar en todas mis aplicaciones, todo OK.
Ahora he creado una caja de Objetos (Aplicacion)que hereda las dos cajas anteriormente mencionadas (Base_Img y Base_datos). hasta aquí todo correcto. Se que puedo utilizar las cajas de datos y de objetos con cualquier proyecto que haga. El tema es que cuando las heredo, no los veo como objetos, solo los puedo utilizar con los nuevos objetos que creo.
Ahora surgen mis dudas. En primer lugar, si ahora creo una nueva caja de datos que hereda de Base_datos, se que puedo utilizar las tablas y todos los objetos de la caja heredada, pero mi pregunta es la siguiente: Puedo añadir algún campo mas a una de las tablas de la caja Heredada?, de la misma manera me puede pasar con las cajas de objetos, Puedo añadir o modificar alguno de los objetos creados en la caja Heredada?
Todo esto viene por lo siguiente: si tengo una aplicación creada como standard (como las plantillas de Velneo) y un cliente me pide que añada unos campos a una de las tablas, o que a uno de los formularios, por ejemplo clientes, le añada dichos campos y le quite algún otro, etc... como se hace. La herencia podría servir para este menester.
Gracias de antemano, pero la verdad es que no lo tengo del todo claro y no se como plantear el tema que he comentado en el punto anterior.
Saludos
Overall


([N4] jarboleya1) #2

Hola Overall,
Trataré de responder a tus dudas:

[quote]¿Puedo añadir algún campo mas a una de las tablas de la caja Heredada?
[/quote]
Puedes añadir y modificar campos en la caja común heredada por las demás, pero no puedes cambiar la estructura de una tabla de una caja heredada.
Piensa que si añades un campo a la caja heredada estará provocando un cambio de estructura en todas las instancias de la caja heredada y por lo tanto de tus clientes. Eso es lo mismo que si cambias en la caja de datos común a todas las aplicaciones la tabla añadiendo o modificando los campos.

[quote]¿Puedo añadir o modificar alguno de los objetos creados en la caja Heredada?
[/quote]Si quieres añadir objetos a una caja heredada y que estos objetos los reutilicen todos lo más lógico es añadirlo directamente en el caja heredada.
Si quieres añadir objetos que sólo los use un determinado cliente lo más lógico es que ese objeto lo añadas en su caja específica que seguro heredará de la caja común que heredan todas tus aplicaciones.
En futuras versiones está previsto implementar la posibilidad de "pisar" un objeto, es decir, no modificar la caja heredada y, sin embargo, en la caja del cliente que hereda de la común poder indicar que cuando utilice vaya a utilizar un objeto de la caja común use el de la caja del cliente. Reitero que esta funcionalidad aún no está implementada.
Saludos.


([N2] overall) #3

Hola jarboleya,
Muchas gracias por tu rápida respuesta en un día de descanso laboral, te agradezco la aclaración. Será muy interesante la posibilidad de "pisar" un objeto, será un gran avance.
Repito, mucha gracias y saludos.
Overall