Ответ 1
Из Clojure.org обзор типов данных:
Телами метода
reify
являются лексические замыкания и могут ссылаться на окружающую локальную область.reify
отличается отproxy
тем, что:
- Поддерживаются только протоколы или интерфейсы, нет конкретного суперкласса.
- Телами метода являются истинные методы результирующего класса, а не внешние fns.
- Вызов методов в экземпляре напрямую, не используя поиск по карте.
- Нет поддержки динамической замены методов на карте методов.
Результат - лучшая производительность, чем
proxy
, как при построении, так и при вызове.reify
предпочтительнееproxy
во всех случаях, когда его ограничения не являются запретительными.
Источник: http://clojure.org/datatypes