Ruby语法,嵌套模块或类



我是Ruby的新手,但是已经浏览了一些源代码。我在一些源代码中遇到了如下所示的结构(模块的名称,类的名称,而不是真实的)

module ModuleOne
class MyClass
module CommonModule
# code ....
end # module CommonModule
end # class MyClass
end # module ModuleOne

或者这个例子

module ModuleOne
  class MyClass
    class MyClassTwo
#code  ............
  end #class MyClassTwo
    end #class MyClass
      end #module ModuleOne

从我的阅读到目前为止,我知道在模块中包装类,但我还没有听说过上面所示的包装(例如模块中的模块或类中的类)。我能问一下,1. 这是好的做法吗?2. 以这种方式构建代码的优势是什么?

感谢您的任何评论或指点

戴夫

嵌套是为了封装常量,这些模块是特殊情况。换句话说,它们用于命名空间。当您希望某个特定模块只能在某个模块的上下文中访问时,您应该进行嵌套。通过这样做,默认情况下,该模块将无法从外部访问;您必须为名称空间添加前缀才能做到这一点。当你有太多的嵌套层,或者当模块体很长时,在代码中很难遵循它,所以在这种情况下,一个好的方法是编写整个命名空间。

module ModuleOne
  ...
end
class ModuleOne::MyClass
  ...
end
class ModuleOne::MyClass::MyClassTwo
  ...
end

相关内容

  • 没有找到相关文章

最新更新