DuckTyping: Si suena y camina como un pato, es un pato

Anteriormente hacia seña que Python es un lenguaje que puede ser usado para la Programacion Orientada a Objetos, aún cuando en escencia es un lenguaje de scripting.

Una de las principales caracteristicas de Python en la Orientacion a Objetos es el Duck Typing.

El Duck Typing  tiene como fundamento la siguiente frase que voy a parafrasear:

Si camina como un pato, suena como un pato y nada como un pato entonces es un Pato.

En primera instancia podría no tener sentido, pero pero a modo práctico verás que trae grándes ventajas.

Cuando se programa con Duck Typing como fundamento, el punto de atencion no es el objeto sino que es lo que se puede hacer con el objeto.

En lenguajes como Java, se deben declarar los tipos de objeto para asignarlos a variables y basado en el objeto se puede tener acceso a los metodos o funciones que posee.

En duck typing no es necesario definir un tipo de objeto para asignarlo a una variable ya que cada objeto debe de saber por sí mismo que es y que funciones puede desempeñar.

Si se llama una funcion no soportada por el objeto que estamos usando obtendremos un error en tiempo de ejecucion.

Así si un objeto  Pato tiene funciones como “caminar” y “nadar” y otro objeto Humano posee las mismas funciones ambos podrán desempeñar la misma tarea aunque sea con resultados distitntos. Ésto permite que una variedad más amplia de objetos puedan implementar más metodos.

Una principal ventaja es que no se necesita comprobar el tipo de objeto antes de poder usarlo.

Así mismo permite mejorar el diseño de nuestras aplicaciones.

Sí el usuario final es capaz de enviar valores aleatoriamente al programa y éste funciona de forma erronea quiere decir que nuestro diseño esta mal.

Otro lenguaje que hace uso de Duck Typing es Ruby.

Anuncios

Cuentanos tu reaccion

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