Hãy nói rằng tôi có một lớp singleton như thế này:Làm thế nào để thêm các phương pháp lớp học thuận tiện cho một lớp Singleton trong ruby
class Settings
include Singleton
def timeout
# lazy-load timeout from config file, or whatever
end
end
Bây giờ nếu tôi muốn biết những gì thời gian chờ để sử dụng Tôi cần phải viết một cái gì đó như:
Settings.instance.timeout
nhưng tôi thà rút ngắn đó để
Settings.timeout
Một cách rõ ràng để làm cho công việc này sẽ được thay đổi imple cố vấn về Cài đặt cho:
class Settings
include Singleton
def self.timeout
instance.timeout
end
def timeout
# lazy-load timeout from config file, or whatever
end
end
Điều đó có thể hữu ích, nhưng sẽ khá buồn khi viết ra phương pháp lớp cho từng phương pháp thể hiện. Đây là ruby, phải có một cách năng động thông minh để làm điều này.
Tuyệt vời câu trả lời. Trong trường hợp cụ thể của tôi, SingleForwardable chính xác là những gì tôi đang tìm kiếm. Cảm ơn! –