Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Visibilidad de objetos de una clase
Message
 
To
03/06/2006 22:16:03
General information
Forum:
Visual FoxPro
Category:
Object Oriented Programming
Miscellaneous
Thread ID:
01125702
Message ID:
01127178
Views:
24
Aparentemente soy el único al que no le gusta el uso de access y assign por estos pagos <g>, yo trato de usarlos lo menos posible, y solamente cuando uso clases visuales y/o no tengo otra alternativa, cuando diseño classes en código, generalmente hago:
define class myClass as myBaseClass
	protected myProperty1 as myType1

	function getMyProperty1() as myType1
		* Cualquier codigo que necesite
		return this.myProperty1
	endfunc

	function setMyProperty1(newValue as myType1) as Boolean
		* Cualquier codigo que necesite, incluyendo validación del parametro
		* O incluso verificar derechos etc
		if llEsElParametroValido
			this.myProperty1 = newValue
			llSuccess = .t.
		endif
		return llSuccess
	endfunc
Las ventajas que le veo son:

1) Es explícito, no queda oculto el codigo, sólo por argumentar, digamos que en el _access de la propiedad 1 accedemos las propiedades 2, 3 y 4, y le asignamos a su vez valores a las propiedades 5, 6 y 7, todas a su vez tienen, por supuesto, sus access y assigns que a su vez acceden y/o cambian los valores de otras propiedades, que por supuesto tienen access y assign, seguir, o mejor dicho adivinar el flujo del programa se me hace complicado <g> (No es que con los get/set no vaya a tener este problema, pero para mi es mas claro tenerlo asi, y entiendo es un punto de vista muy personal)

2) Me parece útil poder retornar una variable de éxito cuando se trata de cambiar una propiedad, claro esto se podría hacer
	myObjecto.myPropiedad = myNuevoValor
	if myObjeto.myPropiedad # myNuevoValor
		* Fallo
	endif
Pero de nuevo estariamos llamando innecesariamente al myPropiedad.Access si lo hubiera.

La ventaja (única?) que le veo a los métodos Access y Asign (bueno, son dos?) son la sintaxis que no cambia lo que agrega la posibilidad de crear estos métodos a código ya existente, pero... incluso no estoy tan seguro que tan bueno es esto...

Bueno, ese es mi punto de vista que puede estar completamente equivocado y no se si tiene mucho sentido para ustedes.

Por otra parte, Ricardo, yo nunca usaría propiedades públicas (solo las uso en las clases visuales)
"The five senses obstruct or deform the apprehension of reality."
Jorge L. Borges?

"Premature optimization is the root of all evil in programming."
Donald Knuth, repeating C. A. R. Hoare

"To die for a religion is easier than to live it absolutely"
Jorge L. Borges
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform