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
return this.myProperty1
endfunc
function setMyProperty1(newValue as myType1) as Boolean
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
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