mixin
- 模块的(类)方法永远不能被 “混入”
- include 派到实例方法中
- extend 派到类方法中
module First
first = 1
def greet
p 'hello'
end
end
module Second
second = 2
def self.smile
p 'smile'
end
end
class People
# include First
extend First
extend Second
def eat
p 'eat'
end
end
p = People.new
p.greet
# p.smile
People.smile
当使用include First
时,只能使用p.greet,而如果使用extend则只能通过Person.greet
调用,而对于module Second中的smile方法,是无法混入的