Подтвердить что ты не робот

Почему я должен использовать Reify вместо прокси-сервера в clojure?

Почему я должен использовать Reify вместо прокси-сервера в clojure?

4b9b3361

Ответ 1

Телами метода reify являются лексические замыкания и могут ссылаться на окружающую локальную область. reify отличается от proxy тем, что:

  • Поддерживаются только протоколы или интерфейсы, нет конкретного суперкласса.
  • Телами метода являются истинные методы результирующего класса, а не внешние fns.
  • Вызов методов в экземпляре напрямую, не используя поиск по карте.
  • Нет поддержки динамической замены методов на карте методов.

Результат - лучшая производительность, чем прокси, как в построении, так и при вызове. reify предпочтительнее proxy во всех случаях, когда его ограничения не являются запретительными.

Источник: http://clojure.org/datatypes

Ответ 2

Используйте reify, где вы когда-нибудь используете proxy, если вам не нужно переопределять методы базового класса.