Khi tôi đọc thêm về lập trình siêu lập trình Ruby, hầu hết thời gian chúng tôi tìm thấy ít nhất hai giải pháp để giải quyết vấn đề. Hãy xem xét hai ví dụ dưới đây:Class vs Module trong việc thiết kế Ruby API?
class Base
def self.has_many(*args)
# ...
end
end
class Student < Base
has_many :books
end
Một phong cách:
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
Nhưng khi chúng tôi thiết kế api, chúng ta phải quyết định cái nào để sử dụng, nhưng tôi muốn hỏi ý tưởng của bạn và một số thực hành tốt nhất mà hầu hết mọi người đã triển khai trong thư viện của họ.