2010-05-14 109 views
3

我所熟悉的嵌套類和模塊的另一個模塊中的概念,並在命名空間中對其進行分組。紅寶石嵌套類和模塊

class A 
    module c 
    def method_c 
     ... 
    end 
    end 
end 

感謝, 灰後面是什麼

  1. 嵌套類的想法/目的在另一個類中

    class A 
        class B 
        def method_B 
         ... 
        end 
        end 
    end 
    
  2. 嵌套模塊在另一個類中

回答

1

這是關於在揭示明智的語義的同時分組相關的問題。作爲數字1的示例,HTTP :: Request(嵌入在更大的HTTP協議類中的請求類)與FTP :: Request完全不同。通過模塊,它啓用了用於處理mixin的Behavior :: InstanceMethods和Behavior :: ClassMethods的通用ruby慣用語。

+0

雖然這些是模塊中類的示例,但問題是關於類中的類。 – Chuck 2010-05-14 15:50:11

+0

HTTP不一定是一個模塊。這可能是一個班,具體取決於你設計程序的方式。 – 2010-05-15 00:22:55

+0

所以它只是一個命名空間,並沒有特殊的行爲,只能包含可以創建封閉類的實例的類? – user290870 2010-05-15 20:08:58

3

類也是命名空間,所以它是一樣的想法。 Class是Module的一個子類,所以如果你在模塊的上下文中獲得它,你也可以在類的上下文中獲得它。