Рубрика:
Разработка /
Особенности языка
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ИВАН ШИХАЛЕВ, программист, специализируется на веб-разработке и Ruby, занимается собственными проектами. Хобби – спортивное «Что? Где? Когда?»
Декораторы в Ruby
Как известно, в языке Python существует красивый механизм декораторов, расширяющих функционал объекта без изменения интерфейса. Это довольно мощное средство, попользоваться им удобно и приятно. Но вот проблема: наш язык программирования – Ruby!
На самом деле никакой проблемы нет, и в Ruby достаточно возможностей, чтобы решать подобные задачи не менее эффективно, чем в конкурирующих технологиях.
Декоратор в общем смысле – шаблон проектирования, предусматривающий динамическое подключение дополнительной функциональности к некоторому уже имеющемуся объекту без изменения его интерфейса. Старая функциональность оказывается как бы обернута в новую.
Декоратор в языке программирования Python – специальная синтаксическая конструкция, «оборачивающая» заданную функцию с использованием ранее определенной функции-обертки. Оборачивающая функция принимает в качестве аргументов заданную и, возможно, какие-то дополнительные параметры, которые в дальнейшем указываются при использовании декоратора, и возвращает замещающую функцию.
... ... ...
Универсальность всегда увеличивает сложность и накладные расходы. Так что мое мнение: жили мы без декораторов в Ruby и еще поживем. Тем не менее сама методика декорирования кода, безусловно, заслуживает внимания и может с успехом применяться в самых разных задачах.
Статью целиком читайте в журнале «Системный администратор», №9 за 2013 г. на страницах 68-71.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|