如何使用最简洁、最符合Ruby风格的方式,让一个构造函数返回适当类型的对象?
更具体地说,举个例子:假设我有两个类Bike
和Car
都继承自Vehicle
。我想要实现以下目标:
Vehicle.new('mountain bike') # returns Bike.new('mountain bike')
Vehicle.new('ferrari') # returns Car.new('ferrari')
我下面提出了一个解决方案,但它使用了allocate
,似乎太过于依赖具体实现。还有其他方法吗?或者我的方法实际上可以吗?