Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Что такое модуль и зачем его используют? Чем модуль отличается от класса?

Вопрос проверяет понимание концепции модулей в Ruby, их назначения и отличий от классов.

Короткий ответ

Модуль в Ruby — это способ группировать методы, константы и другие модули для их дальнейшего использования в классах. Основное отличие модуля от класса — его нельзя создавать с помощью new. Модули часто применяются для организации кода и реализации множественного наследования через миксины.

Длинный ответ

Модуль в Ruby — это объект, предназначенный для объединения методов, констант и других модулей с целью их повторного использования. В отличие от классов, модули не могут быть экземплярами и не поддерживают наследование. Они применяются в двух основных сценариях:

- Для миксинов — добавления общих методов в несколько классов.

- Для пространств имён — группировки классов и методов под одним логическим именем.

 

Пример создания модуля:

module Greetable
  def greet
    "Hello!"
  end
end

class User
  include Greetable
end

user = User.new
puts user.greet # => "Hello!"

 

Отличия модуля от класса:

- Модуль нельзя инстанцировать (Module.new вызовет ошибку).

- Класс поддерживает наследование, а модуль — нет.

- Модули часто используются как контейнеры для методов или как миксины.

 

Использование пространств имён:

module Admin
  class User
    def role
      "Admin"
    end
  end
end

admin_user = Admin::User.new
puts admin_user.role # => "Admin"

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Ruby

Ключевые слова

#module

#mixin

#namespace

#inheritance

#method

Подпишись на Ruby Developer в телеграм