Metody fabryczne w Rubim
Jaki jest najdelikatniejszy, najbardziej podobny do Rubiego sposób, aby pojedynczy konstruktor zwracał obiekt odpowiedniego typu?
Mówiąc dokładniej, oto fałszywy przykład: powiedzmy, że mam dwie klasyBike
iCar
która podklasaVehicle
. Chcę to:
Vehicle.new('mountain bike') # returns Bike.new('mountain bike')
Vehicle.new('ferrari') # returns Car.new('ferrari')
Zaproponowałem rozwiązanie poniżej, ale używaallocate
który wydaje się zbyt ciężki w realizacji. Jakie są inne podejścia, czy moje są w porządku?