为什么我们需要ClassMethods和InstanceMethods?

Lai*_*uan 16 ruby module ruby-on-rails

我阅读了ActiveSupport :: Concern 的API.有ClassMethodsInstanceMethods,我们可以把类方法ClassMethods.

但是M主机可以使用定义的方法M,不是吗?为什么我不能写:

module M
  def self.x
  end

  def y
  end
end
Run Code Online (Sandbox Code Playgroud)

而不是:

module M
  module ClassMethods
    def x
    end
  end
  module InstanceMethods
    def y
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 13

你可能对耶胡达对这种模式的看法感兴趣.我认为它的一些原因是历史的,因为他们是不是真的需要,除非你手动做什么红宝石将通过自动完成includeextend.