模块和类组合
你可以使用模块通过组合构建更复杂的类。include ModuleName
指令将模块的方法合并到一个类中。
module Foo
def foo_method
puts 'foo_method called!'
end
end
module Bar
def bar_method
puts 'bar_method called!'
end
end
class Baz
include Foo
include Bar
def baz_method
puts 'baz_method called!'
end
end
Baz
现在包含 Foo
和 Bar
的方法以及它自己的方法。
new_baz = Baz.new
new_baz.baz_method #=> 'baz_method called!'
new_baz.bar_method #=> 'bar_method called!'
new_baz.foo_method #=> 'foo_method called!'