Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Visibilidad de objetos de una clase
Message
 
À
03/06/2006 22:16:03
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Divers
Thread ID:
01125702
Message ID:
01127178
Vues:
19
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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform