PDF de programación - Clases Dinámicas y Clases Estáticas

<<>>
Imágen de pdf Clases Dinámicas y Clases Estáticas

Clases Dinámicas y Clases Estáticasgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 28 de Febrero del 2018)
294 visualizaciones desde el 28 de Febrero del 2018
147,8 KB
2 paginas
Clases Dinámicas y Clases Estáticas
Hemos llegado lejos ­al menos más lejos de lo que pensé en un principio­ y hasta ahora hemos establecido las bases para entender de qué se trata todo esto
de la Programación Orientada a Objetos y cómo escribir y usar nuestras clases. Lo que haremos a partir de este punto será concentrarnos más en ciertos
detalles relativos a la creación y utilización de las clases, que nos permita que nuestros proyectos sean más eficientes y flexibles para, entre otras cosas, no
vernos en la necesidad de tener que modificar una clase cada vez que vamos a usarla en un nuevo proyecto (algo que es muy común cuando se comienza a
programar con ellas) y hallar la forma de tener un mejor control de nuestro código sin que ello sea un dolor de cabeza a la hora de usarlas en distintos
proyectos.

En este post nos concentraremos en averiguar cuáles son los tipos de clases que existen y cuál es la utilidad de cada uno. Por eso, antes de comenzar,
quiero hacer una aclaratoria para no confundirnos a causa del título. Existen tres tipos básicos de clases: cerradas, dinámicas y estáticas.

La razón por la que no hablaremos del primer tipo es porque ya lo conocemos (O’ RLY?). Sí, las clases que hemos estado programando hasta ahora se
conocen como clases cerradas, es decir, todos los eventos, métodos y propiedades están definidas dentro de la clase, así que no es posible agregárselos
dinámicamente.

Clases Dinámicas

En oposición a las clases cerradas existe lo que se conoce como clases dinámicas. Su principal característica es que permiten agregar en tiempo de
ejecución, propiedades y métodos a la clase, es decir, que yo puedo agregar una nueva propiedad a la instancia de mi clase, aunque ésta no haya sido
definida originalmente. Veámoslo con un ejemplo comparativo:

Como puedes ver, la única diferencia entre Persona y Persona2 es que en el segundo caso hemos agregado, en la declaración de la clase, la palabra clave
dynamic. Esta palabrita es la que hará toda la magia, ya que, como puedes ver en la implementación (más abajo, en la imagen), la instancia de Persona nos
dará un error en tiempo de compilación (diciéndonos que la clase Persona no tiene una propiedad llamada apellido), mientras que Persona2 simplemente
creará la nueva propiedad (fíjate que no existe en la clase) y le colocará el valor correspondiente.

De hecho, si has trabajado con AS2 (que supongo que así es), posiblemente esto sea algo que has implementado varias veces.
En cualquier caso, no es recomendable usar clases dinámicas a menos que sea necesario, porque entre otras cosas, la verificación de datos es menos
estricta que en las clases cerradas, lo que hace que se pierda control sobre los datos de la clase, haciéndola susceptible de errores inesperados.

Clases Estáticas

Por su parte, las clases estáticas están pensadas para contener elementos (propiedades o métodos) que no dependen directamente de un objeto para su
funcionamiento ¿Cómo es eso? Veamos:

En varias ocasiones nos encontramos con que tenemos una función que puede ser utilizada por distintos objetos, o en diferentes situaciones, que no están
relacionadas con algún objeto específico, puede ser el caso de una operación matemática, un cálculo, dibujar una forma geométrica, etc. Sin las clases
estáticas la opción sería: Crear esta misma función en cada clase que utilizamos (copiar y pegar no es reusabilidad). Pero esto es algo engorroso y poco
práctico (¿qué pasa si queremos agregar un nuevo parámetro a nuestra función o conseguimos una forma más efectiva de hacer lo mismo? Tendríamos que

reescribir el código en cada clase donde lo hemos usado… y tú no quieres hacer eso ¿verdad?).

Un buen ejemplo de clases estáticas es la clase Math, común en ActionScript, Javascript, .Net, etc. Esta clase se encarga de hacer una serie de operaciones

Un buen ejemplo de clases estáticas es la clase Math, común en ActionScript, Javascript, .Net, etc. Esta clase se encarga de hacer una serie de operaciones
matemáticas a las que sólo les pasamos los parámetros que necesita. Otro ejemplo típico sería una clase que se encargara de dibujar objetos. Es la que
veremos en este ejemplo:

En este caso, tenemos una clase que contiene un sólo método (getSolidRectangle), que además es de tipo estático (lo sabemos por el uso de la palabra
clave static en la declaración del método) y que dibuja un rectángulo con color de fondo sólido en un mc que hemos enviado como primer parámetro.

Si nos fijamos en la implementación de la clase, veremos que sólo tiene tres líneas:

1.  Importa la clase.
2.  Crea el movieclip donde dibujaremos el rectángulo.
3.  Llamamos al método getSolidRectangle para dibujar el rectángulo en cuestión

Como te habrás dado cuenta, en este caso no hemos creado una instancia de Graph (que lo haríamos con la palabra clave new). Esto se debe a que las
clases estáticas no se instancian (o sea, que no podemos crear objetos a partir de ellas), sino que podemos usar directamente sus elementos, simplemente
apuntando a al clase misma (Graph.getSolidRectangle()). Si alguna vez has usado la clase Math sabes de lo que estoy hablando.

Es por eso que las clases estáticas normalmente son utilizadas para albergar esos procedimientos que queremos reutilizar una y otra vez, pero que no están
directamente asociados a un objeto o una clase en particular. Así, en vez de tener que escribir una y otra vez el mismo procedimiento, sólo tenemos que
importar la clase y usarla. Si luego queremos hacer cambios en el(los) procedimiento(s), hacemos los cambios en la clase estática y estos se actualizarán
automáticamente en todos los sitios donde se utilice. Esto sí es reusabilidad ;)

Un dato importante, cuando creamos una clase estática, todos los elementos públicos de dicha clase también deben ser estáticos.

 

Blog   Foros   Tutoriales   Tutoriales de Flash   Ejemplos .fla   Anime   Videotutoriales   Cursos   Curso de Flash   Curso de HTML   Tags
  • Links de descarga
http://lwp-l.com/pdf9115

Comentarios de: Clases Dinámicas y Clases Estáticas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad