ruby中类内部的模块和模块内部的类之间的区别

ruby中类内部的模块和模块内部的类之间的区别,ruby,module,Ruby,Module,我认为这两种方法都用于名称空间。 模块通常混合到类中,对吗?那么,在类中定义模块的目的是什么呢?一般来说,模块有两种用途: 名称空间模块。当您在这里嵌套东西时,模块仅用于指定路径 功能模块。当模块具有拟直接在模块上调用的实际功能或拟包含/扩展模块时 类应该只用于功能,即使Ruby没有强制它 尝试执行上述操作(例如,将模块用于名称空间和功能(1)或将类用于名称空间(2))通常会让您感到困惑 (1) 有些人不同意用实例方法指向rails的模块,实例方法也包含另一个模块,称为ClassMetho

我认为这两种方法都用于名称空间。
模块通常混合到类中,对吗?那么,在类中定义模块的目的是什么呢?

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

  • 名称空间模块。当您在这里嵌套东西时,模块仅用于指定路径
  • 功能模块。当模块具有拟直接在模块上调用的实际功能或拟包含/扩展模块时
类应该只用于功能,即使Ruby没有强制它

尝试执行上述操作(例如,将模块用于名称空间和功能(1)或将类用于名称空间(2))通常会让您感到困惑


(1) 有些人不同意用实例方法指向rails的模块,实例方法也包含另一个模块,称为
ClassMethods
。我认为如果有一个模块有两个模块-
ClassMethods
InstanceMethods
,它会更干净

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

可能重复的