我想要的是一个单一的 API,它根据通过初始化程序传递的参数来确定将方法委托给的类。这是一个基本示例:
module MyApp
class Uploader
def initialize(id)
# stuck here
# extend, etc. "include Uploader#{id}"
end
end
end
# elsewhere
module MyApp
class UploaderGoogle
def upload(file)
# provider-specific uploader
end
end
end
我想要的结果:
MyApp::Uploader('Google').upload(file)
# calls MyApp::UploaderGoogle.upload method
请注意,以上仅用于演示目的。我实际上将传递一个对象,该对象包含一个带有上传者 ID 的属性。有没有更好的方法来处理这个?