Chỉ cần nhận được đầu của tôi xung quanh Ruby metaprogramming. Các mixin/mô-đun luôn quản lý để gây nhầm lẫn cho tôi.Sự khác nhau giữa bao gồm và mở rộng trong Ruby là gì?
- bao gồm: hỗn hợp trong các phương pháp mô-đun quy định như phương pháp dụ trong lớp mục tiêu
- mở rộng: hỗn hợp trong các phương pháp mô-đun quy định như phương pháp lớp trong lớp mục tiêu
Vì vậy, sự khác biệt lớn chỉ này hoặc là một con rồng lớn ẩ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!"
Kiểm tra liên kết này quá: http://juixe.com/techknow/index.php/2006/06/15/mixins-in-ruby/ – Donato