루비 메타 프로그래밍에 대해 궁금합니다. 믹스 인 / 모듈은 항상 나를 혼란스럽게합니다.
- include : 지정된 모듈 메소드 에서 대상 클래스의 인스턴스 메소드 로 혼합
- extend : 지정된 모듈 메소드 에서 대상 클래스의 클래스 메소드 로 혼합
가장 큰 차이점은 이것입니까 아니면 더 큰 용은 숨어 있습니까? 예 :
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"