Ich verwende "proxy", um verschiedene Swing-Klassen in einer Clojure-GUI-Anwendung zu erweitern, im Allgemeinen mit Code, der ungefähr so aussieht:
%Vor%Das funktioniert gut, aber ich kann nicht herausfinden, wie man der neu erweiterten Klasse zusätzliche Felder hinzufügt, zum Beispiel das Hintergrundbild zu einem Feld machen, das später aktualisiert werden könnte. Dies wäre ziemlich einfach und in Java üblich.
Gibt es einen guten Weg, dies in Clojure zu tun? Oder gibt es eine andere bevorzugte Methode, um denselben Effekt zu erzielen?
Sie können etwas wie folgt verwenden:
%Vor%oder verwenden Sie eine andere äußere Funktion / Ref.
Schamlose Eigenwerbung: Ich habe vor einiger Zeit einen Blogpost geschrieben über Proxy und seinen Gotchas.