Программирование на языке Ruby
Шрифт:
Библиотека
Однако мне этот способ представляется слишком примитивным. Поскольку я не думаю, что это существенно лучше, чем то же самое, сделанное вручную, задерживаться на классе
Метод верхнего уровня
Можно также унаследовать класс
Но если вам необходим больший контроль, то, вероятно, вы все равно осуществляете делегирование на уровне отдельных методов, а не класса в целом. Тогда лучше воспользоваться библиотекой
Как видно из этого примера, метод
Обратите внимание, мы пишем
Иногда нужно делегировать методы одного объекта одноименным методам другого объекта. Метод
В отличие от первого примера, остальные методы делегирующим объектом просто не поддерживаются. Иногда это хорошо, ведь не хотите же вы вызывать метод
Отметим еще, что показанный выше код позволяет вызывающей программе передавать объект конструктору (для использования в качестве объекта-делегата). В полном соответствии с духом «утилизации» это означает, что я могу выбирать вид объекта, которому делегируется управление, коль скоро он поддерживает те методы, которые вызываются в программе.
Например, все приведенные ниже вызовы допустимы. (В последних двух предполагается, что предварительно было выполнено предложение
Так, объекты
Существует также класс
Быть может, вы задумались о том, что лучше — делегирование или наследование. Но это неправильный вопрос. В некоторых ситуациях делегирование оказывается более подходящим решением. Предположим, к примеру, что имеется класс, у которого уже есть родитель. Унаследовать еще от одного родителя мы не можем (в Ruby множественное наследование запрещено), но делегирование в той или иной форме вполне допустимо.
11.2.10. Автоматическое определение методов чтения и установки на уровне класса
Покер для даймонов. Тетралогия
107. В одном томе
Фантастика:
фэнтези
рейтинг книги
"Господин мертвец"
2. Господа Магильеры
Фантастика:
боевая фантастика
рейтинг книги
Потемкин
916. Жизнь замечательных людей
Проза:
историческая проза
рейтинг книги
Неучтенный элемент. Том 3
3. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
Воронцов. Перезагрузка
1. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
рейтинг книги
Последний рейд
5. Медорфенов
Фантастика:
фэнтези
аниме
рейтинг книги
Играть... в тебя
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
рейтинг книги
Маленькая женщина Большого
5. Наша
Любовные романы:
эро литература
современные любовные романы
рейтинг книги
Булгаков
Проза:
историческая проза
современная проза
повесть
рейтинг книги
Печать Пожирателя
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
рейтинг книги
Стихотворения 1906-1941
Поэзия:
поэзия
рейтинг книги