Métodos de fábrica em Ruby
Qual é a maneira mais esperta, mais parecida com Ruby, de ter um único construtor retornando um objeto do tipo apropriado?
Para ser mais específico, aqui está um exemplo fictício: digamos que eu tenha duas classesBike
eCar
qual subclasseVehicle
. Eu quero isso:
Vehicle.new('mountain bike') # returns Bike.new('mountain bike')
Vehicle.new('ferrari') # returns Car.new('ferrari')
Eu propus uma solução abaixo, mas ela usaallocate
o que parece muito pesado para implementação. Quais são algumas outras abordagens, ou a minha é realmente ok?