Chỉ cần nhận được đầu của tôi xung quanh Ruby siêu lập trình. Các mixin / mô-đun luôn quản lý để làm tôi bối rối.
- bao gồm : trộn trong các phương thức mô-đun được chỉ định làm phương thức cá thể trong lớp đích
- mở rộng : trộn trong các phương thức mô đun đã chỉ định làm phương thức lớp trong lớp đích
Vì vậy, sự khác biệt lớn chỉ là điều này hay là một con rồng lớn hơn đang ẩn nấp? ví dụ
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!"