我在 Ruby 中有一个包含一些东西的类,我会调用FooBox
:
class FooBox
...
end
我有两个可能的后备数据存储,用于FooBox
调用BoxA
并且BoxB
具有不同的特征但具有相同的接口:
class BoxA
include Enumerable
def put_stuff(thing)
...
end
end
class BoxB
include Enumerable
def put_stuff(thing)
...
end
end
如何实例化 a FooBox
,并根据参数决定是否使用 aBoxA
或BoxB
实现来支持它?我不想将实现传递给构造函数;我只想通过一些东西来确定使用哪种。
class FooBox
def initialize(implementation_choice)
# ???
end
end