【发布时间】:2011-10-27 06:41:33
【问题描述】:
在研究 mixins 与依赖注入时,我经常听到“Ruby 方式”这个短语。开发人员经常会说类似
Ruby 允许您重新打开类并重新定义方法,这意味着您可以 在测试时轻松地将新引用“注入”到您的代码中。
(参见#6 http://weblog.jamisbuck.org/2007/7/29/net-ssh-revisited)
但测试不是我主要关心的;我关心的是类重用。我想要可以在多个企业级 Rails 应用程序中重用的类。
那么重用类发生了什么?使用 mixins 和重新打开类似乎并没有提供一种编写类的方法,即无需大量额外工作即可将它们与特定于应用程序的细节分离。但也许我错了。如果我是,有人可以提供一个包含示例代码的文章的链接,该文章清楚地解释了如何使用 mixin 和重新打开类来正确完成此操作?
举个例子,这里的Foo类耦合到Logger类:
class Foo
def initialize
@logger = new_logger
end
def new_logger
Logger.new
end
end
是的,我可以重新打开 Foo 并重新定义 new_logger,但我无法相信这被认为是编写可供多个 Rails 应用程序使用的可重用类的现实标准方法。
【问题讨论】:
标签: ruby-on-rails ruby dependency-injection mixins