2011-10-14 12 views

Odpowiedz

9

Według Joy of Clojure:

Zalety korzystania definterface nad defprotocol są ograniczone wyłącznie z faktu, że były prymitywne typy pozwala na argumentów i zwrotów. W pewnym momencie w przyszłości ta sama zaleta zostanie prawdopodobnie rozszerzona na interfejsy generowane [przez protokoły], więc oszczędnie korzystaj z definterface i preferuj protokoły, chyba że absolutnie konieczne jest .

3

Moje prawdopodobnie niekompletne zrozumienie to definterface tworzy interfejs .class, który może implementować kod java w celu utworzenia klas odpowiednich do przekazywania do funkcji Clojure.

Protokoły to krótszy, szybszy i bardziej skoncentrowany sposób wysyłania niż multimetody. faktycznie masz uruchomiony kod w protokole, który jest używany przez inny kod clojure.