Resolvendo Elegantantamente o Problema da Expressão: Despacho Múltiplo e Métodos Abertos

2025-09-07

Este artigo mergulha no 'problema da expressão', um desafio que afeta tanto a programação orientada a objetos quanto a funcional: adicionar novos tipos de dados e operações sem modificar o código existente. Usando exemplos em C++ e Haskell, o autor ilustra o cerne do problema. A OOP tradicional luta para estender tipos e operações simultaneamente, e a programação funcional enfrenta limitações semelhantes. O artigo analisa profundamente o padrão de visitante e suas extensões, usando finalmente os multimethods e protocolos do Clojure para demonstrar como o despacho múltiplo e os métodos abertos resolvem elegantemente o problema da expressão, permitindo código flexível e extensível.

Desenvolvimento despacho múltiplo