當我閱讀更多關於Ruby元編程的內容時,大多數時候我們發現至少有兩種解決方案來解決問題。請看下面兩個例子:類與模塊在設計Ruby API?
class Base
def self.has_many(*args)
# ...
end
end
class Student < Base
has_many :books
end
另一種風格:
module Base
def self.included(klass)
klass.extend ClassMethods
end
module ClassMethods
def has_many(*args)
# ...
end
end
end
class Student
include Base
has_many :books
end
但是,當我們設計的API,我們必須決定使用哪一個,但我想問一下您的想法和一些大多數人已經在他們的圖書館中實施的最佳實踐。