RubyのMixinがどんな感じかな、ということで試してみた。
# モジュールの定義 module Mod def normal str return "#{self.func str}" end def exclamation str return "#{self.func str}!" end def period str return "#{self.func str}." end end class Foo def func str return str end include Mod # Mixinしている end class Bar def func str return str * 2 end include Mod # Mixinしている end puts Foo.new.normal "ok" #=>"ok" puts Foo.new.exclamation "ok" #=>"ok!" puts Foo.new.period "ok" #=>"ok." puts Bar.new.normal "ok" #=>"okok" puts Bar.new.exclamation "ok" #=>"okok!" puts Bar.new.period "ok" #=>"okok."
こんな感じでしょうか。
もうすこしMixinするモジュールが多い時などに重要になりそうですね。あとはまとまった機能をモジュールとしてまとめるときなどはよさそうです。
ComparableなどのRubyの標準にあるモジュールなどもこれで使えるのでRubyを使うときはどんどん使わないといけませんね。