» Главная
eXcode.ru » Статьи » Ruby
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 16





Купить паола рейна

Записи о рождении и воспитании ребенка. Интернет-магазин развивающих игр.

paolareina.com.ua




Модули в Ruby




Модули в Ruby аналогичны классам, за исключением:

* модуль не может иметь представителей.
* модуль не может иметь подклассов.
* модуль определяется конструкцией module ... end.

На самом деле... класс Module модуля является суперклассом класса Class класса. Понятно? Нет? Едем дальше.

Существуют два типа модулей. Один предназначен для централизованного хранения методов и констант. Модуль Math в стандартной библиотеке Ruby выступает в данной роли:



ruby> Math.sqrt(2)

1.41421

ruby> Math::PI

3.14159

Оператор :: указывает интерпретатору Ruby местоположение константы (возможно, некоторые модули кроме Math определяют значение PI несколько иначе). Если мы хотим прямо ссылаться на методы или константы модуля без использования ::, мы можем включить (include) нужный модуль:



ruby> include Math

Object

ruby> sqrt(2)

1.41421

ruby> PI

3.14159

Другим способом использования модулей является миксин (mixin). Некоторые ОО языки программирования, включая С++, допускают множественное наследование , то есть наследование от более чем одного суперкласса. Примером множественного наследования из реальной жизни может служить будильник; можно считать, что будильник принадлежит к классу часы и также к классу жужжалка.

Ruby умышленно не разрешает множественное наследование, но техника mixin-ов является хорошей альтернативой. Помните, что модули не могут быть инстанциированы и от них нельзя образовать подклассы; но если мы включаем (include) модуль в определение класса, его методы добавляются, или подмешиваются ("mixed in") в класс.

Миксины можно рассматривать с позиций того, какие частные свойства мы хотим получить. Например, если у класса есть работающий метод each, включая в него модуль Enumerable из стандартной библиотеки бесплатно дает нам методы sort и find.

Подобное использование модулей дает нам простейшую функциональность множественного наследования, но дает возможность представить взаимоотношения классов простой структурой дерева, а также значительно упрощает реализацию языка (подобный выбор также был сделан дизайнерами Java).

Источник: www.opennet.ru
К началу статьи





Добавил: MadvEXДата публикации: 2007-10-16 09:15:25
Рейтинг статьи:3.00 [Голосов 10]Кол-во просмотров: 3605

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Вы жалеете, что Билли уходит на пенсию?
Гореть ему в АДУ!!!
41% (53)
Побыстрее бы ушел!
5% (6)
Уйдет он, придет другой!
28% (36)
А мне все равно, я Mac юзаю!
2% (3)
Жаль, дядю Билла :(
12% (15)
Может он передумает?!
13% (17)

Проголосовало: 130
Фирма Microsoft выпустила новую электронную таблицу Sexcel 1.1. На первый взгляд она ничем не отличается от Excel 5.0, но удовольствия от работы гораздо больше.
Рейтинг: 8/10 (2)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » Ruby