Фабричные методы в Ruby

Каков самый гладкий, наиболее Ruby-подобный способ, чтобы единственный конструктор возвращал объект соответствующего типа?

Чтобы быть более конкретным, вот фиктивный пример: скажем, у меня есть два классаBike а такжеCar какой подклассVehicle, Я хочу этот:

Vehicle.new('mountain bike')  # returns Bike.new('mountain bike')
Vehicle.new('ferrari')        # returns Car.new('ferrari')

Я предложил решение ниже, но оно используетallocate который кажется слишком сложным для реализации. Какие есть другие подходы, или мой на самом деле хорошо?

Ответы на вопрос(6)

Ваш ответ на вопрос