Программирование на языке Ruby
Шрифт:
Библиотека
Однако мне этот способ представляется слишком примитивным. Поскольку я не думаю, что это существенно лучше, чем то же самое, сделанное вручную, задерживаться на классе
Метод верхнего уровня
Можно также унаследовать класс
Но если вам необходим больший контроль, то, вероятно, вы все равно осуществляете делегирование на уровне отдельных методов, а не класса в целом. Тогда лучше воспользоваться библиотекой
Как видно из этого примера, метод
Обратите внимание, мы пишем
Иногда нужно делегировать методы одного объекта одноименным методам другого объекта. Метод
В отличие от первого примера, остальные методы делегирующим объектом просто не поддерживаются. Иногда это хорошо, ведь не хотите же вы вызывать метод
Отметим еще, что показанный выше код позволяет вызывающей программе передавать объект конструктору (для использования в качестве объекта-делегата). В полном соответствии с духом «утилизации» это означает, что я могу выбирать вид объекта, которому делегируется управление, коль скоро он поддерживает те методы, которые вызываются в программе.
Например, все приведенные ниже вызовы допустимы. (В последних двух предполагается, что предварительно было выполнено предложение
Так, объекты
Существует также класс
Быть может, вы задумались о том, что лучше — делегирование или наследование. Но это неправильный вопрос. В некоторых ситуациях делегирование оказывается более подходящим решением. Предположим, к примеру, что имеется класс, у которого уже есть родитель. Унаследовать еще от одного родителя мы не можем (в Ruby множественное наследование запрещено), но делегирование в той или иной форме вполне допустимо.
11.2.10. Автоматическое определение методов чтения и установки на уровне класса
Ожог
3. Затаивший дыхание
Любовные романы:
современные любовные романы
эро литература
рейтинг книги
Супервольф
Секретный фарватер
Проза:
современная проза
рейтинг книги
Прайм. Рунный призрак
3. Легенда
Фантастика:
фэнтези
боевая фантастика
рпг
рейтинг книги
ХРАНИТЕЛЬНИЦА
Фантастика:
фэнтези
юмористическая фантастика
рейтинг книги
Заклятие Фавна
Научно-образовательная:
физика
рейтинг книги
Печать Пожирателя
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
рейтинг книги
Зимний спиннинг
Дом и Семья:
хобби и ремесла
рейтинг книги
Ледяной Дракон
2. The Dragonrealm
Фантастика:
фэнтези
рейтинг книги
Ассасин
Я – вор в законе
Детективы:
боевики
рейтинг книги
Битва за звезды
20. Фантастический боевик
Фантастика:
космическая фантастика
рейтинг книги
Гримуар темного лорда III
3. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
ТВ - эволюция нетерпимости
Документальная литература:
прочая документальная литература
рейтинг книги