El Blog de over…

noviembre 14, 2007

Reemplazando hash por arreglos para la creacion de objetos en perl.

Filed under: ./programacion — elblogdeover @ 3:28 am

Una alternativa obvia como reemplazo de variables hash son los arreglos. Los arreglos tienen casi todas las ventajas de los hashes, al igual que un hash pueden almacenar multiple valores de diferente tipos, estos tambien pueden ser jerarquicos y expansdirse si es necesario, un arreglo tienen mayor performance y ventajas ya que estos utilizan menos memoria y el acceso a sus elementos es mas rapido.

El unico inconveniente de usar arreglos en vez de hash es que no son autodescritivos y se pierde la legibilidad del atributo de un objeto en las etiquetas proveidas por las llaves de los hash, por ejemplo, es mas complejo ver el error en:

sub Proyectil::get_velocity

{

my ($self) = @_;

return $self->[2]/$self->[11];

}

El equivalente en hash es:

sub Proyectil::get_velocity

{

my ($self) = @_ ;

return $self->{_tiempo_vuelo}/$self->{_distancia_vuelo};

}

Usando nombres en vez de numeros es muy facil verificar que estamos calculando (metros/segundos) en vez de (segundos/metros). Claro es relativamente sencillo evitar este tipo de problemas de significado de indices numericos predefiniendo constantes apropiadas, el siguiente ejemplo muestra una forma legible de escribir un paquete haciendo uso de arreglos.

package Proyectil;

use strict;

use constant TIEMPO_VUELO => 2;

use constant DISTANCIA_VUELO => 11;

sub get_velocity

{

my ($self) = @_;

return $self->[DISTANCIA_VUELO]/$self->[TIEMPO_VUELO];

}

Haciendo uso de constantes se simplifica la compresion del codigo haciendolo mas mantenible y ordenado.

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: