Ver Mensaje Individual
  #4  
Antiguo 24-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.318
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Jvilomar
Lo primero es que puedo tener Clientes que compren Apartamentos y Clientes que compren Vehiculos, asi el tener que tomar todos los datos generales de un cliente para realizar una venta de un apartamento, seria algo muy tedioso si puedo heredar de una clase clientes estos datos
Creo que deberías tener una relación entre las clases Apartamentos y Vehiculos hacia la tabla Clientes; Es una cuestión de diseño. Eso es una asociativa, no una herencia.

Cita:
Empezado por Jvilomar
Lo segundo: si quiero evitar obviamente la redundancia de datos en mi codigo y tomando en cuenta lo que ya te eh explicado en el parrafo anterior, la ultima opcion de las dos que me has presentado es lo que mas se asemeja a lo que quiero hacer: mi Tabla Cliente con los Datos Generales y mi tabla Apartamentos con los datos pertinentes... asi por ejemplo aprovecho y un cliente puede tener varias Viviendas e incluso Viviendas y Vehiculos.
Revisa atentamente la documentación que te he pasado. Esa opción es la más costosa en cuanto a construcción y un poco más lenta que el resto a la hora de hacer inserciones y consultas (ya que implica más join's), pero por contra es la más "purista" en cuanto a orientación a objetos y las más versátil y sencilla de actualizar (a la hora de cambios y amplicaciones) respecto a las otras.

Cita:
Empezado por Jvilomar
...las Clases Abstractas segun lei en la ayuda son aquellas que se declaran pero que no tienen ningun codigo para implementar o mejor dicho que sirven para derivar de esta (Estoy en lo correcto?). lo de las virtuales es que aun no logro digerir muy bien. De todos modos voy a darle una miradita a los links recomendados.
Aquí hay dos cosas, espero que no las liemos..
* Clase Abstracta: Nos referimos a una clase que no tiene correspondecia de un objeto real en la Base de Datos; Es decir, si tienes Triangulos(T), Circulos(C) y Elipses(E), seguramente te interesará crear una Clase Objeto2D del cual deriven el resto. Al la hora de crear/pintar objetos reales, ninguno será de la clase Objeto2D, sino que serán T, C o E.
El error está en decir que la clase abstracta no tiene código a implementar; ¡Todo lo contrario! en una estructura como esta, todo el código común que puedas programar en Objeto2D (y que sirva para sus descendientes, T, C y E) te evitarás programarlo en sus tres descendientes; Esa es la gracia, programar lo más pòsible en la clase base (Objeto2D) para evitar programarlo en las n clases descendientes.

* Métodos Abstractos/Virtuales: Son métodos de una clase y esto será lo que te ha llevado a confusión; Aquí sí es cierto que un método abstracto no tiene código.
Se define un método abstracto (vacío), para "obligar" a que todos sus descendientes lo redefinan (sobreescriban) y en la clase donde se define estará vacío.
Se define un método como virtual (vacío o con código), para permitir (no obligar) que sus descendientes lo redefinan(sobreescriban) si lo creen conveniente y necesario.

Espero haberme explicado bien.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 24-01-2006 a las 16:09:23.
Responder Con Cita