37 votes

Pourquoi devrais-je utiliser Reify au lieu de proxy en clojure?

Pourquoi devrais-je utiliser Reify au lieu de proxy en clojure?

50voto

KushalP Points 3280

Le corps des méthodes d' reify sont lexicale fermetures, et peut se référer aux alentour de portée locale. reify diffère proxy en ce que:

  • Seuls les protocoles ou les interfaces sont pris en charge, pas de béton de la superclasse.
  • Le corps des méthodes sont de véritables méthodes de la classe, pas externe pn.
  • Invocation de méthodes sur l'instance est directe, et non à l'aide de la carte de recherche.
  • Pas de support pour la dynamique de l'échange de méthodes dans la méthode de la carte.

Il en résulte de meilleures performances que les proxy, à la fois dans la construction et l'invocation. reify est préférable d' proxy dans tous les cas où les contraintes ne sont pas prohibitifs.

Source: http://clojure.org/datatypes

12voto

semperos Points 3045

Utilisez reify là où vous utiliseriez autrefois proxy , sauf si vous devez redéfinir les méthodes de la classe de base.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X