Ver Mensaje Individual
  #5  
Antiguo 08-10-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Quisiera dar mi opinión al respecto, empezando por indicar que el nombre correcto de las mencionadas variables de una clase es campos.

Imaginemos que el nuevo miembro público TopX se declara como campo, y que algún desarrollador (que pudiera ser el mismo autor de esa clase) hace referencia a dicho campo tratándolo como variable:

@Objeto.TopX
ProcGetTop (Objeto.TopX)

Cuando el autor de la clase decida cambiar el campo TopX por propiedad (por el surgimiento de la necesidad de implementarle un método Get de lectura o Set de escritura; o para que pueda ser vista en el inspector de objetos, cambiando su visibilidad a Published; etc.), el código que hace referencia al campo como variable ya no podría compilar y tendría que ser modificado.

Siento que es cuestión de cada caso en particular. Después de todo las reglas y contratos de la POO no son perfectos y les aparecen muchos huecos legales cuando se aterrizan en un lenguaje . En el caso de Patroclus02, quizá baste una leyenda «{ No utilizar estos campos como variables, podrían ser convertidos a propiedades en futuras versiones }», aunque ciertamente la norma general más segura sería declararlos como propiedades.

Un abrazo declarado.

Al González.
Responder Con Cita