В чем разница между классом и синглтоном этого класса в Ruby?

Итак, я пытаюсь выполнить метапрограммирование в Ruby, и я немного запутался. Согласно нескольким статьям, которые я прочитал (например,этот), чтобы динамически добавлять методы класса в классы Ruby, вы должны использовать синглтон-класс класса:

class Klass
end

class << Klass
  self.define_method(:foo) { return "foo" }
end

Почему это, и как это отличается от этого?

class Klass
  self.define_method(:foo) { return "foo" }
end

(Извините, если этот вопрос содержит ложные предположения. Как я уже сказал, я немного запутался.)

Ответы на вопрос(1)

Ваш ответ на вопрос