Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Volviendo al tema, ...MVC Design pattern en VFP
Message
 
To
All
General information
Forum:
Visual FoxPro
Category:
Object Oriented Programming
Title:
Volviendo al tema, ...MVC Design pattern en VFP
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
MySQL
Miscellaneous
Thread ID:
01124653
Message ID:
01124653
Views:
141
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.prg
con 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,
Next
Reply
Map
View

Click here to load this message in the networking platform