При изучении микшинов и инъекций зависимости я часто слышу фразу "путь Ruby". Часто разработчики говорят что-то вроде
Ruby позволяет повторно открывать классы и переопределять методы, что позволяет легко "вводят" новые ссылки в ваш код во время тестирования.
(см. # 6 на http://weblog.jamisbuck.org/2007/7/29/net-ssh-revisited)
Но тестирование не является моей главной заботой; моя забота - повторное использование класса. Я хочу, чтобы классы я мог повторно использовать в нескольких приложениях Rails корпоративного масштаба.
Итак, что случилось с классами REUSING? Использование mixins и классов повторного открытия, похоже, не дает возможности писать классы таким образом, чтобы они были отделены от конкретных приложений без дополнительной работы. Но, возможно, я ошибаюсь. Если да, может ли кто-нибудь предоставить ссылку на статью, содержащую образец кода, в котором четко объясняется, как это сделать правильно, используя mixins и повторное открытие классов?
В качестве примера класс Foo здесь связан с классом Logger:
class Foo
def initialize
@logger = new_logger
end
def new_logger
Logger.new
end
end
Да, я могу повторно открыть Foo и переопределить new_logger, но я просто не могу поверить, что это считается реалистичным стандартным подходом к написанию многоразовых классов, используемых несколькими приложениями Rails.