Нет большой разницы между class
и module
в отношении определения методов класса. Однако они принципиально отличаются тем, что класс определяет тип, который может быть создан (Service.new
). Модули также могут иметь методы экземпляра, но они не могут быть созданы напрямую, только включены в класс.
Если вам нужно только пространство имен для методов класса, вы должны использовать module
. class
тоже подойдет для этого, но передает другое значение.
Кстати: хотя вы не можете extend
или include
класс, в модуле вы можете написать def self.get
вместо extend
.