类中的模块与ruby中的模块内的类之间的区别

时间:2018-03-19 15:17:37

标签: ruby module

我认为两者都用于命名空间。 模块通常混合成类,对吧?那么,在类中定义模块的目的是什么?

1 个答案:

答案 0 :(得分:1)

一般来说,模块有两种用途:

  • 命名空间模块。当您在此处嵌套内容时,该模块仅用于指定路径。
  • 功能模块。当模块具有要在模块上直接调用的实际功能时,或者要包含/扩展模块。

类应该仅用于功能,即使Ruby没有强制执行它。

尝试做一些事情,但上面的内容(比如命名空间和功能的使用模块(1)或使用命名空间(2)的类)通常会让你感到困惑

(1)有些人不同意指向铁轨'模块,其实例方法也包含另一个模块,称为ClassMethods。我认为如果有一个包含两个模块的模块会更加清晰 - ClassMethodsInstanceMethods

(2)有些人不同意。一个可能有效的情况是,如果您尝试模拟其他语言的私有类(私有类将嵌套在您的公共类中)。