相关疑难解决方法(0)

为什么在Ruby中使用类变量被认为是"代码味道"?

根据Reek的说法,创建一个类变量被认为是"代码味道".这背后的解释是什么?

ruby class-variables class-instance-variables

9
推荐指数
1
解决办法
2088
查看次数

确保类的单个实例的正确方法是什么?

在java中,我会创建这样的东西:

private static MyClass instance;

public static MyClass getInstance() {
  if(instance != null) {
    return instance;
  }
  instance = new MyClass();
  return instance;
}
Run Code Online (Sandbox Code Playgroud)

在 ruby​​ 中获得相同功能的合适方法是什么?

更新:我已经阅读了关于“包含单例”的内容,但是当我尝试在 Ruby 1.9 上的 irb 中执行此操作时,我得到了:

[vertis@raven:~/workspace/test]$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin9.4.0]
[vertis@raven:~/workspace/test]$ irb
irb(main):001:0> class TestTest
irb(main):002:1>   include Singleton
irb(main):003:1> end
NameError: uninitialized constant TestTest::Singleton
    from (irb):2:in `<class:TestTest>'
    from (irb):1
    from /usr/local/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby singleton coding-style

3
推荐指数
1
解决办法
1112
查看次数

在rails控制器中使用静态变量是否是一种好习惯?

我有一个关于Rails最佳实践的问题。在我的rails项目中,我有以下代码:

class MyController < ApplicationController

  def some_method
    @product = MyFabricatorClass.new.create_product
  end

  ...
end
Run Code Online (Sandbox Code Playgroud)

MyFabricatorClass不依赖于某些状态,并且其行为是恒定的。我也在做很多C ++的工作,对我来说,总是实例化一个新的MyFabricatorClass对象似乎有点效率低下。在C ++项目中,我会适当地使用类似以下内容的东西:

class MyController < ApplicationController

  @@my_fabricator = nil

  def some_method
    @@my_fabricator ||= MyFabricatorClass.new
    @product = @@my_fabricator.create_product
  end

  ...
end
Run Code Online (Sandbox Code Playgroud)

这种样式在Rails中也合法吗?典型的Rails方式是什么?

感谢您的任何建议...!

ruby-on-rails static-variables

2
推荐指数
1
解决办法
1087
查看次数