26 lines
463 B
Go
26 lines
463 B
Go
package abstract_factory
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
const (
|
|
OFFROADER_CAR = 1
|
|
SPORT_CAR = 2
|
|
)
|
|
|
|
type CarFactory struct{}
|
|
|
|
// Creates vehicles which is member of Car subfamily group
|
|
func (f *CarFactory) NewVehicle(carType int) (Vehiche, error) {
|
|
switch carType {
|
|
case OFFROADER_CAR:
|
|
return new(Offroader), nil
|
|
case SPORT_CAR:
|
|
return new(Sportcar), nil
|
|
default:
|
|
return nil, errors.New(fmt.Sprintf("Unsupported car vehicle type:%d", carType))
|
|
}
|
|
}
|