Ver Mensaje Individual
  #4  
Antiguo 08-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No. En mi opinión no sería mejor declarar variables "públicas" con el fin de exponerlas a quien use una determinada clase y además usarlas en el interior de la propia clase. Incluso cuando no pensaras en que las clases van a reutilizarse o algo así. Es lo mismo. Creo que es cuestión de diseño (siempre quise decir algo así).

Ya he dicho antes que, en mi opinión, el propio código fuente sale ganando (tú sales ganando, y quien quiera que tenga que "tocar" dicho código) es más inteligible si las cosas se mantienen en su cauce: variables privadas para uso privado de la clase; y, por otro lado, propiedades públicas para ser usadas desde fuera de la clase.

Lo mismo, por supuesto, con los métodos que contenga una determinada clase. No será muy cabal utilizar métodos públicos desde el interior de una clase, lo mismo que no se permite (o no estará bien, véase más abajo) porque "rompe" con el encapsulamiento que se pretende, digo, utilizar métodos privados de una clase desde fuera de esta.

Piensa por ejemplo en algo peculiar en Delphi. No debería poder accederse a una variable privada desde fuera de una determinada clase en que se encuentre declarada. Pues bien, Delphi, en la unidad donde escribas una determinada clase, fuera de la declaración e implementación de la clase, te permite acceder a las variables privadas de aquélla.

Digo esto para hacerme entender: aunque Delphi te "permite" eso, lo cierto es que no es algo recomendable acceder alegremente a variables privadas de una clase, aunque se pueda, porque estaremos mezclando churras con merinas y eso puede desconcertar a quien estudie nuestro código, traer consecuencias inesperadas, etc., etc.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 08-10-2006 a las 12:22:53.
Responder Con Cita