Martín, siguiendo con el tema ahora en el foro en español.
Preguntaba como implementar correctamente el MVC usando VFP. El problema que me enfrenté, es pasando algo de código entre JAVA y VFP y tratando de ser lo más purista posible en el uso de patrones de diseño.
Te planteo un ejemplo extremadamente básico y te pido tu opinión al respecto.
Un formulario con un solo botón que imprime un mensaje.
1) Capa VIEW del pattern en VFP
directamente creo un form
CREATE FORM mvcTest
Y le agrego un command button llamado
cmdSaludo y una propiedad llamada
oCtrl que instancia la clase controller
2) Capa Controller del pattern
creo un PRG para definir una clase llamado
ctrlTest.prgcon el siguiente código:
DEFINE CLASS ctrlTest as Custom
PROTECTED cSaludo as String
PROCEDURE Init(cStr as String)
this.cSaludo = cStr
ENDPROC
PROCEDURE Saludar
MESSAGEBOX(this.cSaludo)
ENDPROC
ENDDEFINE
En el método
Load del formulario agrego el siguiente código:
SET PROCEDURE TO ctrlTest.prg additive
This.oCtrl = CREATEOBJECT("ctrlTest")
El evento click del botón el siguiente código:
Thisform.oCtrl.Init("Hola UT!")
Thisform.oCtrl.Saludar()
Y por último en el evento Unload del form:
RELEASE PROCEDURE ctrlTest
This.oCtrl = null
3) Capa Model del pattern
es aplicable ?
Funcionar, funciona, pero mi duda es esi correctamente aplicable. Por lo pronto me surgen cuatro preguntas:
1) La capa Model es aplicable ?
2) La definición de la clase es de tipo
Custom . Es correcto ?
3) Cuando aplicar en la definición de clase tipo
Session ?
4) la instanciación de la clase dentro del form no me parece muy elegante, pero quiería evitar tener un main (o un programa lanzador) con muchas definiciones y objetos instanciados sin ser usados.
Saludos,