2011-01-28 5 views

答えて

2

はい、モジュールは一般的な答えです。より具体的なニーズ(たとえば、2つの異なるクラスの機能をマージするクラスを持つなど)がある場合は、委任などの他のオプションがあります。

あなたはそれを継承するものに「クラスのメソッドを提供するモジュールが必要な場合、あなたはおそらく、この一般的なパターンを使用することに注意してください:

module Foo 
    def aaa 
    "hi" 
    end 
    module ClassMethods 
    def bbb 
     "mom" 
    end 
    end 
    def self.included(other) 
    other.extend ClassMethods 
    end 
end 

class Bar 
    include Foo 
end 

puts Bar.new.aaa, Bar.bbb 
#=> hi 
#=> mom 
関連する問題