Please enable JavaScript.
Coggle requires JavaScript to display documents.
DUCK TYPING - Coggle Diagram
DUCK TYPING
Ejemplo Conceptual
Persona
caminar()
sonido()
Robot
caminar()
sonido()
Pato
caminar()
sonido()
Todos pueden utilizarse igual porque poseen el mismo comportamiento
Perro
caminar()
sonido()
Conclusión
Duck Typing es una técnica flexible y poderosa
Se centra en capacidades y comportamientos
Facilita reutilización y polimorfismo
Muy usado en Python y lenguajes dinámicos
Debe usarse cuidadosamente para evitar errores en ejecución
Concepto Principal
Técnica de programación usada en lenguajes dinámicos
Se basa en el comportamiento del objeto
No importa la clase del objeto
Importa lo que el objeto “puede hacer”
Relación con la Programación Orientada a Objetos
Polimorfismo
Diferentes objetos responden al mismo mensaje
Abstracción
Solo interesa el comportamiento necesario
Encapsulamiento
El usuario no necesita conocer la implementación interna
Reutilización
Objetos distintos pueden reutilizarse en el mismo código
Estructura General
Objeto A
Tiene método requerido
Función
Usa el método sin importar el tipo
Objeto B
También tiene el método requerido
Funcionamiento
Evalua
Métodos
Funciones
Comportamientos
No evalua
Herencia estricta
Tipo exacto
Clase específica
Idea Fundamental
Programación tradicional
Verifica el tipo del objeto
Usa herencia rígida
Depende de clases concretas
Duck Typing
Solo verifica si el objeto responde correctamente
Mayor flexibilidad
Menor acoplamiento
Lenguajes que usan Duck Typing
Lenguajes comunes
Python
Ruby
JavaScript
PHP
Perl
Lenguajes menos comunes
Java
C#
TypeScript
.
Ventajas
Flexibilidad
Se pueden usar distintos objetos fácilmente
Menos código rígido
Reduce dependencias entre clases
Reutilización
Funciones genéricas
Desarrollo rápido
Ideal para prototipos
Código más limpio
Menos validaciones de tipo
Desventajas
Errores en ejecución
Si el método no existe, falla
Difícil depuración
Algunos errores aparecen tarde
Menor control de tipos
Riesgo en proyectos grandes
Documentación importante
Debe conocerse qué métodos necesita cada función
Diferencia con Herencia
Herencia
"Es un"
Perro ES UN animal
"Puede hacer"
Si puede hablar() sirve
Ejemplo en Python
Relación con Polimorfismo
Duck Typing permite
Un mismo método
Diferentes comportamientos