Métodos de fábrica en Ruby.
¿Cuál es la forma más ingeniosa y parecida a Ruby de que un solo constructor devuelva un objeto del tipo apropiado?
Para ser más específico, aquí hay un ejemplo ficticio: digamos que tengo dos clasesBike
yCar
cual subclaseVehicle
. Quiero esto:
Vehicle.new('mountain bike') # returns Bike.new('mountain bike')
Vehicle.new('ferrari') # returns Car.new('ferrari')
He propuesto una solución a continuación, pero utilizaallocate
lo que parece demasiado pesado de implementación. ¿Cuáles son algunos otros enfoques, o el mío está realmente bien?