2011-09-18 21 views
14

ActiveSupport :: Concern için API okudum. ClassMethods ve InstanceMethods vardır, sınıf yöntemlerini ClassMethods'a koyabiliriz.Neden ClassMethods ve InstanceMethods'a ihtiyacımız var?

Ancak M adlı kullanıcının sunucusu M'da tanımlanan yöntemleri kullanabilir, değil mi? Neden sadece yazamıyor:

module M 
    def self.x 
    end 

    def y 
    end 
end 

ziyade:

module M 
    module ClassMethods 
    def x 
    end 
    end 
    module InstanceMethods 
    def y 
    end 
    end 
end 

cevap

11

Yehuda's take on this pattern ilginizi çekebilir. Bence, Ruby'nin otomatik olarak include ve extend aracılığıyla otomatik olarak yapamayacağınız sürece bunların gerçekten gerekli olmadığına inanıyorum.

1

bağımlılıklar halledilir. Verilen örneğe bakın here.

İlgili konular