Я динамически создаю классы без имен.Где динамически создавать классы? В пространстве объектов или глобальных имен?
Я видел пример, где это творение делается в классе Object:
class Object
for elem in ARRAY
sub_class = Object.const_set(elem.to_s.camelize, Class.new(SuperClass))
sub_class.class_eval do
def initialize(*args, &block)
...
super *args, &block
end
end
end
end
Мои вопросы:
- Вы бы также оценить это в контексте объекта?
- В чем отличие от создания классов в глобальном пространстве имен?
- Любые преимущества или недостатки?
А, ладно. Что касается вашего последнего предложения: мой вопрос заключался в том, является ли определение его в «Объекте» выгодным по сравнению с пространством имен верхнего уровня. Так или иначе, он будет доступен для всех классов. Таким образом, нижняя строка: * Нет разницы * (поскольку глобальное пространство имен подразумевает косвенное пространство имен объектов). – crispy