Программирование на языке Ruby
Шрифт:
Библиотека
Однако мне этот способ представляется слишком примитивным. Поскольку я не думаю, что это существенно лучше, чем то же самое, сделанное вручную, задерживаться на классе
Метод верхнего уровня
Можно также унаследовать класс
Но если вам необходим больший контроль, то, вероятно, вы все равно осуществляете делегирование на уровне отдельных методов, а не класса в целом. Тогда лучше воспользоваться библиотекой
Как видно из этого примера, метод
Обратите внимание, мы пишем
Иногда нужно делегировать методы одного объекта одноименным методам другого объекта. Метод
В отличие от первого примера, остальные методы делегирующим объектом просто не поддерживаются. Иногда это хорошо, ведь не хотите же вы вызывать метод
Отметим еще, что показанный выше код позволяет вызывающей программе передавать объект конструктору (для использования в качестве объекта-делегата). В полном соответствии с духом «утилизации» это означает, что я могу выбирать вид объекта, которому делегируется управление, коль скоро он поддерживает те методы, которые вызываются в программе.
Например, все приведенные ниже вызовы допустимы. (В последних двух предполагается, что предварительно было выполнено предложение
Так, объекты
Существует также класс
Быть может, вы задумались о том, что лучше — делегирование или наследование. Но это неправильный вопрос. В некоторых ситуациях делегирование оказывается более подходящим решением. Предположим, к примеру, что имеется класс, у которого уже есть родитель. Унаследовать еще от одного родителя мы не можем (в Ruby множественное наследование запрещено), но делегирование в той или иной форме вполне допустимо.
11.2.10. Автоматическое определение методов чтения и установки на уровне класса
Вернадский
325. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
рейтинг книги
Технология XSLT
Компьютеры и Интернет:
программирование
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
рейтинг книги
Петербург - нуар. Рассказы
Проза:
современная проза
рейтинг книги
Я князь. Книга XVIII
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Ведьмак (сборник)
Фантастика:
фэнтези
рейтинг книги
Самвел
Проза:
историческая проза
рейтинг книги
Приключения Оливера Твиста. Повести и рассказы
82. Библиотека всемирной литературы
Проза:
классическая проза
рейтинг книги
Том 5. Рудин. Повести и рассказы 1853-1857
5. Собрание сочинений в двенадцати томах
Проза:
русская классическая проза
рейтинг книги
Рыцарь Империи
3. Одержимый
Фантастика:
фэнтези
рейтинг книги
Ганнибал
3. Ганнибал Лектер
Детективы:
триллеры
рейтинг книги