Elegante Lösung des Ausdrucksproblems: Mehrfachdispatch und offene Methoden
Dieser Artikel befasst sich mit dem „Ausdrucksproblem“, einer Herausforderung, die sowohl die objektorientierte als auch die funktionale Programmierung betrifft: das Hinzufügen neuer Datentypen und Operationen, ohne den bestehenden Code zu ändern. Anhand von Beispielen in C++ und Haskell veranschaulicht der Autor den Kern des Problems. Traditionelle OOP hat Schwierigkeiten, Typen und Operationen gleichzeitig zu erweitern, und die funktionale Programmierung stößt auf ähnliche Einschränkungen. Der Artikel analysiert das Besuchermuster und seine Erweiterungen eingehend und verwendet schließlich die Multimethoden und Protokolle von Clojure, um zu zeigen, wie Mehrfachdispatch und offene Methoden das Ausdrucksproblem elegant lösen und flexiblen und erweiterbaren Code ermöglichen.
Mehr lesen