Программирование на языке Ruby
Шрифт:
Библиотека
Однако мне этот способ представляется слишком примитивным. Поскольку я не думаю, что это существенно лучше, чем то же самое, сделанное вручную, задерживаться на классе
Метод верхнего уровня
Можно также унаследовать класс
Но если вам необходим больший контроль, то, вероятно, вы все равно осуществляете делегирование на уровне отдельных методов, а не класса в целом. Тогда лучше воспользоваться библиотекой
Как видно из этого примера, метод
Обратите внимание, мы пишем
Иногда нужно делегировать методы одного объекта одноименным методам другого объекта. Метод
В отличие от первого примера, остальные методы делегирующим объектом просто не поддерживаются. Иногда это хорошо, ведь не хотите же вы вызывать метод
Отметим еще, что показанный выше код позволяет вызывающей программе передавать объект конструктору (для использования в качестве объекта-делегата). В полном соответствии с духом «утилизации» это означает, что я могу выбирать вид объекта, которому делегируется управление, коль скоро он поддерживает те методы, которые вызываются в программе.
Например, все приведенные ниже вызовы допустимы. (В последних двух предполагается, что предварительно было выполнено предложение
Так, объекты
Существует также класс
Быть может, вы задумались о том, что лучше — делегирование или наследование. Но это неправильный вопрос. В некоторых ситуациях делегирование оказывается более подходящим решением. Предположим, к примеру, что имеется класс, у которого уже есть родитель. Унаследовать еще от одного родителя мы не можем (в Ruby множественное наследование запрещено), но делегирование в той или иной форме вполне допустимо.
11.2.10. Автоматическое определение методов чтения и установки на уровне класса
Тринадцатый IV
4. Видящий смерть
Фантастика:
боевая фантастика
попаданцы
рейтинг книги
Тарзан (Сборник рассказов)
Тарзан
Приключения:
природа и животные
рейтинг книги
История ислама. Исламская цивилизация от рождения до наших дней
Научно-образовательная:
история
культурология
религиоведение
рейтинг книги
Петербург - нуар. Рассказы
Проза:
современная проза
рейтинг книги
Гильдия
Гильдия
Фантастика:
боевая фантастика
рейтинг книги
Арестант
7. Бандитский Петербург
Детективы:
боевики
рейтинг книги
Эзотерический мир. Семантика сакрального текста
Религия и эзотерика:
эзотерика
рейтинг книги
Виконт. Книга 2. Обретение силы
2. Псевдоним `Испанец`
Фантастика:
боевая фантастика
попаданцы
рпг
рейтинг книги
Атосса. Император
Проза:
историческая проза
рейтинг книги
Я снова царь. Книга XXXIII
33. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Город золотых теней
1. Иноземье
Фантастика:
научная фантастика
рейтинг книги