“Clases” y objetos en Javascript. La gran mentira.

No es la primera vez que escribo sobre esto y no será la última. Esta vez sé sobre el tema mucho más que las anteriores, y probablemente después sabre más que ahora, y de eso precisamente es de lo que se trata, de aprender.

Es posible que esta vez levante ampollas, pero ¡ey! los comentarios están abiertos y me encanta discutir, siempre que sea civilizadamente.

Continuar leyendo ““Clases” y objetos en Javascript. La gran mentira.”

Fundamentos de AS3: Variables, propiedades y tipos de dato

Cuando se crea un objeto, éste queda almacenado en memoria. Pero la memoria no es más que un enorme laberinto de ceros y unos. Necesitamos un mecanismo para localizar cualquiera de los objetos que creamos cuando los necesitemos.
Ese mecanismo, seguro que ya lo conoces, son las variables, y a primera vista puede parecer bastante prosaico. Consiste simplemente en ponerle nombre a los objetos y luego llamarlos por ese nombre.
Pero hay mucho más que eso detrás de las variables y en este artículo vamos a hablar de ello.

Continuar leyendo “Fundamentos de AS3: Variables, propiedades y tipos de dato”

Fundamentos de AS3: Definición de métodos

action
Los métodos son una parte fundamental de las clases. Sin ellos sólo servirían para albergar datos.

Una clase es mucho más que una base de datos. Definen lo que un objeto puede hacer, con sus datos y con los de otros objetos.

Si las propiedades son la información, los métodos son la acción.

En este artículo vamos a ver como definir los métodos de una clase. También aprenderemos como pasarles la información que necesitan, si ésta no está en las propiedades de dicha clase.

También estudiaremos qué hacer para que nos devuelvan información cuando terminan de ejecutar sus acciones, si es que ésto es necesario.

Continuar leyendo “Fundamentos de AS3: Definición de métodos”

Fundamentos de AS3: Destripando la clase documento y su constructor. El punto de entrada a un programa

Process-FlowchartToda historia necesita un buen comienzo. Los programas no son precisamente historias pero necesitan un punto por el que empezar a ejecutarse. A este punto se le suele llamar punto de entrada al programa y se corresponde con el lugar de nuestro código fuente en el que escribimos las primeras instrucciones que queremos que se ejecuten. Cada lenguaje tiene su mecanismo particular, pero en los orientados a objetos todos siguen la misma filosofía.

Continuar leyendo “Fundamentos de AS3: Destripando la clase documento y su constructor. El punto de entrada a un programa”

AS3 Paso a paso: Crear clases de AS3 a partir de un símbolo de la biblioteca

Una de las razones por las que merece la pena empezar a programar con Flash Professional y ActionScript es porque permite crear objetos visuales con enorme facilidad.

Ya hemos visto que desde el punto de vista de la Programación Orientada a Objetos, la creación de cualquier objeto, tenga o no representación visual, requiere de la ejecución del constructor de su clase. Esta clase puede existir previamente en el lenguaje ActionScript, como en el caso de MovieClip, o podemos crearla nosotros escribiendo su código fuente.

Pero hay una tercera opción, podemos crear la clase a partir de un símbolo de la biblioteca de Flash. Esta opción es la que marca la diferencia en ActiosScript combinado con Flash y vamos ver como utilizarla.

Continuar leyendo “AS3 Paso a paso: Crear clases de AS3 a partir de un símbolo de la biblioteca”

AS3 Paso a paso: La clase documento en Flash

POO3_ClaseDocumento01_smallToda aplicación necesita un punto de entrada, un lugar por el que empezar a ejecutar el código de nuestro programa. En los lenguajes orientados a objetos este lugar es la clase principal. En Actionscript también se le llama clase documento.

Como todas las clases, la clase documento tiene un método constructor. En las clases normales este método se ejecuta cuando nosotros lo invocamos explícitamente, pero en la clase documento este método es invocado automáticamente cuando se ejecuta el programa, creando así el objeto desde el que se crearán todos los demás.

Veamos como hacerlo en Flash Professional.

Continuar leyendo “AS3 Paso a paso: La clase documento en Flash”

Introducción a POO II: Clases de objetos

instanciasDeClaseCasaEn el mundo real los objetos pueden ser de diferentes tipos. Los objetos del mismo tipo o clase están definidos por los mismos atributos o propiedades y tienen comportamientos y capacidades semejantes.

Estos objetos se forman o se construyen siguiendo diferentes procesos. Pero, dejando de lado los creados por la naturaleza, los creados por el hombre obedecen siempre a un plan. Por ejemplo un edificio parte de la idea de un arquitecto.
El arquitecto plasma con todo detalle esa idea en los planos, y a partir de esos planos se pueden construir muchos edificios. Cada uno de ellos será similar pero diferente a los demás. Puede tener la fachada de de distinto color, los remates más o menos lujosos, calefacción, distinta iluminación,…

Continuar leyendo “Introducción a POO II: Clases de objetos”

Introducción a la Programación Orientada a Objetos (POO)

Programación Orientada a ObjetosLos lenguajes de programación han pasado por diferentes paradigmas a lo largo de su historia. En 60 años se ha pasado de escribir programas como una secuencia de órdenes codificadas en ceros y unos, que se ejecutan una detrás de otra hasta que no quedan más, a utilizar lenguajes que permiten construir módulos independientes que prácticamente piensan por si mismos (toman decisiones) y se comunican entre sí; pasando por el camino por una larga lista de diferentes técnicas y metodologías que se han ido quedando obsoletas en la mayoría de los campos.

En el primero de estos dos extremos se encuentran los lenguajes denominados de bajo nivel. Estos lenguajes se parecen mucho al lenguaje interno del procesador y están muy alejados del lenguaje humano. Aunque no vamos a hablar prácticamente nada de ellos, debéis saber que todavía se utilizan cuando se necesita que el procesador o la tarjeta gráfica realicen operaciones con la mayor rapidez posible.

En el otro extremo se encuentran los lenguajes a los que se califica como de alto nivel. Son lenguajes mucho más parecidos al lenguaje humano, y en general, utilizan órdenes y comandos que tienen significado para nosotros y no hace falta saber mucho sobre como funciona internamente el hardware para entenderlos.

Desde hace más de 30 años la mayoría de los lenguajes de alto nivel que se utilizan para construir aplicaciones son lenguajes orientados a objetos.

Continuar leyendo “Introducción a la Programación Orientada a Objetos (POO)”

Los Singletons son el mal reencarnado. El pecado original fueron las clases estáticas

No sé si alguno de vosotros ha tenido alguna vez fuertes discusiones con algun colega programador sobre este tema, yo sí. Demasiadas. ;P

Y es que siempre resulta difícil explicarle a alguien por qué algo que es cómodo es malo. En fin, qué le vamos a hacer pero la experiencia nos ha demostrado a todos, creo, que normalmente las mejores soluciones no son las más fáciles… y punto. Pero como el sentido común no es el más común de los sentidos me voy a explicar.

El patrón Singleton facilita dos cosas:

  1. Control sobre la instaciación de una clase. Sólo permite crear una instancia (Esto suena bien)
  2. Un punto de acceso global a la única instancia de esa clase y por tanto a toda su funcionalidad (Suena todavía mejor)

Pero que algo suene bien o todavía mejor no es un argumento para utilizar una técnica a diestro y siniestro. Sobre todo cuando no se piensa en todas las implicaciones de esa melodía que parece sonar tan bien.

Continuar leyendo “Los Singletons son el mal reencarnado. El pecado original fueron las clases estáticas”