Программирование на языке Ruby
Шрифт:
Вы наверняка сможете придумать и другие, более изобретательные применения. Метод
В этом примере к массиву
11.2.3. Вложенные классы и модули
Классы и модули можно вкладывать друг в друга произвольным образом. Программисты, приступающие к изучению Ruby, могут этого и не знать.
Основная цель данного механизма — упростить управление пространствами имен. Скажем, в класс
Другой пример дает класс
Кроме того, вложенный класс можно создавать просто потому, что внешний мир не должен знать о нем или обращаться к нему. Иными словами, можно создавать целые классы, подчиняющиеся тому же принципу «сокрытия данных», которому переменные и методы экземпляра следуют на более низком уровне.
Можно вкладывать класс в модуль, модуль в класс и т.д. Если вы придумаете интересные и изобретательные способы применения этой техники, дайте нам знать.
11.2.4. Создание параметрических классов
Изучи правила, потом нарушай их.
Предположим, что нужно создать несколько классов, отличающихся только начальными значениями переменных уровня класса. Напомним, что переменная класса обычно инициализируется в самом определении класса.
Все замечательно, но что если нам нужно определить несколько подобных классов? Новичок подумает: «Ну так я просто определю суперкласс!» (листинг 11.12).
Бездна
102. Книга-загадка, книга-бестселлер
Детективы:
триллеры
рейтинг книги
Сравнительные жизнеописания
Документальная литература:
биографии и мемуары
рейтинг книги
Я еще барон. Книга III
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Том 10. Господа «ташкентцы». Дневник провинциала
10. Собрание сочинений в двадцати томах
Проза:
русская классическая проза
рейтинг книги
Последний Паладин. Том 6
6. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Газлайтер. Том 21
21. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
рейтинг книги
Посланник
2. Страж
Фантастика:
научная фантастика
космическая фантастика
рейтинг книги