Shared

23/07/2004 - 16:45 por Hector Silva | Informe spam
Hola a todos, tengo una pregunta y quisiera salir de dudas.

Tener muchas variable en un modulo de manera publica puede
bajar el performance de la maquina. Pero me di cuenta que
si uno crea una variable dentro de una clase y la coloca
shared no hace falta instancearla un objeto de esa clase
para usarla dicha variable. Ahora mi pregunta es, si se
tiene muchas variables shared dentro de varias clases no
me puede pasar igual que en el modulo, que el performance
de la maquina baja.
 

Leer las respuestas

#1 Tristan
23/07/2004 - 19:43 | Informe spam
No, ni los módulos ni las variables shared pueden disminuir las prestaciones
de la aplicación, o si lo hacen, solo en una medida muy pequeña, difícil de
explicar aquí.

Los módulos, al compilarse, realmente se convierten en clases con todos sus
miembros shared. Por lo tanto las prestaciones son idénticas a las de las
clases.

Lo único es que se recomienda minimizar el uso de miembros shared, y desde
luego el de los módulos. Mantener una aplicación de cierto tamaño es más
fácil cuanto menor sea la interdependencia entre sus partes (acoplamiento).

Es fácil modificar en un punto una variable shared, y producir un error
inesperado en otra parte del código. Son errores difíciles de detectar. Por
eso una de las máximas de la OOP, es la encapsulación, es decir encerrar los
elementos en cajas negras.

Por ejemplo, observo que en este foro, muchos tienden a declarar los
formularios de forma global, y acceder a sus controles directamente desde
otros formularios. Lo malo de esa costumbre, es que si modificas el control,
se obliga a revisar toda la aplicación. Si por el contrario solo se
intercambia la información imprescindible, mediante un interface bien
definido, los cambios de unas partes afectan poco al resto.

Juan Carlos Badiola
MVP - C#

Preguntas similares