![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
#1
|
||||
|
||||
![]() Hola a todos, y ante todo, gracias por vuestro tiempo.
![]() Tengo unas clases tal que TCliente, TProveedor, que heredan de TObject y disponen de metodos para el acceso y trabajo con sus conjuntos de datos. Tengo por otra parte sus ventanas correspondientes TvtCliente, TvtProveedor, que heredan de TForm y contienen la interface de acceso y trabajo con los datos. Mi duda es si al iniciar el trabajo con una de estas entidades, (Cliente, Proveedor...), debería: 1.-Instanciar TCliente y que este instancie un TvtCliente... 2.-Instanciar un TvtCliente, que instancie a su vez un TCliente... Lo he realizado de las dos formas y no tengo nada claro cual de ellas sería más correcta. Es posible q me esté "enredando" y debíera unificar las clases en una, heredando de TvtCliente y añadiendole los métodos de TCliente???. Espero haberme explicado bien. ![]() Aceptaré de buen grado, cualquier sugerencia o comentario. Saludos. ![]()
__________________
"Es imposible hacer un programa 100% contra tontos, ya que éstos son muy ingeniosos"
|
#2
|
||||
|
||||
No se si acabo de entenderte bien, pero creo que deberías mantener separadas esas clases; Por un lado tienes las clases de lógica de negocio (Clientes, Proveedores, ...) y por otro lado las ventanas (la interficie). Creo que no deberían derivar las unas de las otras.
De esa forma puedes variar/modificar la interficie sin modificar las clases de negocio. Es más, debes poder trabajar con las clases de negocio (Cliente, Proveedor,...) sin necesidad de interficie; Hacerlo desde código. Lo lógico es que los métodos de trabajo estén en las clase de negocio (Cliente) como por ejemplo, crear, Insertar, borrar, buscar,... y desde la interficie (ventanas) sólo hagas las llamadas a estos métodos.
__________________
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: 27-09-2005 a las 16:24:43. |
#3
|
||||
|
||||
OK, Neftali, así lo tengo en la actualidad... pero mi duda es de cara a la manera de Instanciar ambas clases...
Desde mi MDIForm, cuando accedo a una opción de esas entidades (por ejemplo, Consulta de Clientes), debería: 1.- Instanciar la ventana, y desde ella instanciar la clase Cliente??. 2.- Instanciar la clase cliente y desde ella instanciar la ventana??. 3.- Es indiferente??... Gracias de nuevo. ![]()
__________________
"Es imposible hacer un programa 100% contra tontos, ya que éstos son muy ingeniosos"
|
#4
|
||||
|
||||
Entiendo que la clase Cliente siempre está por debajo de la ventana de cliente. Es decir, la clase puede vivir por sí sola, pero no así la ventana.
La ventana necesita la clase y no al revés.
__________________
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. |
#5
|
||||
|
||||
Ok, ese argumento tiene mucha lógica.
Gracias de nuevo. ![]()
__________________
"Es imposible hacer un programa 100% contra tontos, ya que éstos son muy ingeniosos"
|
#6
|
||||
|
||||
Resp
Mira unejemplo.
Clase op; clase dm clase ops //es un listados de op ops pose un variable d tipo op para manejar listas multiples op tiene una variable de dm para menejo de a data por suspuesto lo smetodos de dm son astractos y los de op tambien entonces tienes una clase que hereda tform tendria una variable tipo ops para menejar sucontenido porsupuesto los metodos de la forma deben ser abtractos para que puedan llamar a los metodos de la clase que heredo y no de la base. De esta manera puedes manejar tus clases de negocio independientemente ya que cada quien tendra que sobresescribir los metodos abstractos y form llamara al herdados por cada quien. Bueno aqui tiene un codigo para un objeto persistente. me disculpan por el codigo pero no se como poner el link a lo sarchivoa atachados.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#7
|
||||
|
||||
Cita:
__________________
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. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|