This is the scenario in which I have to apply some creational pattern.
Build a fleet of 10 cars with the following features. Five cars should have all the features and five should be built without the lidar and ultrasonic sensors:
- Radar sensors dotted around the car monitor the position of vehicles nearby.
- Video cameras detect traffic lights, read road signs and keep track of other vehicles, while also looking out for pedestrians and other obstacles.
- Lidar sensors help to detect the edges of roads and identify lane markings by bouncing pulses of light off the car’s surroundings.
- Ultrasonic sensors in the wheels can detect the position of curbs and other vehicles when parking.
- Finally, a central computer analyses all of the data from the various sensors to manipulate the steering, acceleration and braking.
My initial guess is that it should follow abstract factory method. Following is the initial design but I am not sure whether this is correct or not.
Car factory interface carCreatefactory implements Car factory Products: Sensors Radar sensor implements Sensors Lidar Sensor implements Sensors Ultrasonic sensor implements Sensor Camera Video Camera implements Camera Computer Central Computer implements Computer Client: Fleet
I am confused about the central computer since it doesn’t really seem to fit. Secondly, in this design a car can have only one sensor and not all. Would this pattern fit by changing some logic? Or a different patter should be used?