ruby嵌套类和模块

时间:2010-05-14 06:47:10

标签: ruby

我熟悉在另一个模块中嵌套类和模块的概念,并将它们分组到命名空间中。

背后的想法/目的是什么?
  1. 将类嵌套在另一个类

    class A
      class B
        def method_B
          ...
        end
      end
    end
    
  2. 将模块嵌套在另一个类

    class A
      module c
        def method_c
          ...
        end
      end
    end
    
  3. 感谢, 灰

2 个答案:

答案 0 :(得分:3)

类也是名称空间,所以它的想法是一样的。 Class是Module的子类,所以如果你在模块的上下文中得到它,你也可以在类的上下文中得到它。

答案 1 :(得分:1)

所有关于在暴露敏感语义的同时对相关问题进行分组。作为数字1的示例,HTTP :: Request(嵌入在更大的HTTP协议类中的请求类)与FTP :: Request完全不同。使用模块,它可以使用Behavior :: InstanceMethods和Behavior :: ClassMethods的常用ruby惯用法来处理mixins。