Cómo usar multimethods para comportamiento polimórfico – Resuelto

Los multimétodos en Clojure ofrecen una manera flexible de manejar comportamiento polimórfico basado en múltiples criterios. Aprende cómo implementarlos en este artículo.

¿Qué son los multimétodos?

Son funciones despachadas dinámicamente según un valor calculado por una función de despacho.

Ejemplo básico

Implementemos un sistema que maneja diferentes tipos de transporte:

(defmulti costo :tipo) (defmethod costo :coche [_] 5) (defmethod costo :bicicleta [_] 0) (defmethod costo :default [_] 10) (costo {:tipo :bicicleta}) ;; 0

Ventajas

Los multimétodos son más dinámicos que los protocolos y permiten una extensión sin modificar el código existente.

Conclusión

Úsalos para sistemas flexibles y extensibles, especialmente cuando el comportamiento depende de múltiples variables.