Quale modello creativo dovrebbe essere applicato in questo scenario?

0

Questo è lo scenario in cui devo applicare alcuni schemi creativi.

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:

  1. Radar sensors dotted around the car monitor the position of vehicles nearby.
  2. Video cameras detect traffic lights, read road signs and keep track of other vehicles, while also looking out for pedestrians and other obstacles.
  3. Lidar sensors help to detect the edges of roads and identify lane markings by bouncing pulses of light off the car’s surroundings.
  4. Ultrasonic sensors in the wheels can detect the position of curbs and other vehicles when parking.
  5. Finally, a central computer analyses all of the data from the various sensors to manipulate the steering, acceleration and braking.

La mia ipotesi iniziale è che dovrebbe seguire il metodo di fabbrica astratto. Di seguito è riportato il disegno iniziale, ma non sono sicuro che sia corretto o meno.

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

Sono confuso riguardo al computer centrale dal momento che non sembra adattarsi. In secondo luogo, in questo design una macchina può avere solo un sensore e non tutto. Questo modello si adatterebbe cambiando qualche logica? O dovrebbe essere usato un patter diverso?

    
posta user3102085 18.11.2017 - 09:55
fonte

1 risposta

2

Modelli di creatività candidati

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

Singleton è ovviamente escluso.

Prototype non è realmente un candidato, perché richiederebbe di avere già 1 auto con tutte le funzionalità e una macchina senza il radar, al fine di clonarle.

Il metodo di fabbrica potrebbe essere considerato, se l'interfaccia di creazione dell'auto è sempre la stessa. Ma può davvero essere con tutte queste caratteristiche? E se avessi un nuovo modello di auto con alcune funzionalità in più?

Fabbrica astratta potrebbe essere un candidato. I modelli di auto potrebbero essere diverse famiglie di prodotti astratti. L'auto con e senza radar potrebbe essere prodotti diversi o potrebbe essere lo stesso prodotto creato con parametri diversi nel costruttore.

Builder potrebbe essere un candidato. Un'auto sarebbe un oggetto complesso con un processo di costruzione che potrebbe essere astratto dalla rappresentazione della macchina in calcestruzzo.

E il vincitore è ...?

Leggiamo di nuovo e ci prendiamo cura dei dettagli:

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.

Sarebbe tutto, avrei optato per la fabbrica astratta come te, ogni funzione è un parametro booleano nella chiamata factory.

Ma il tuo testo ti fornisce i dettagli delle funzionalità e la loro dipendenza:

  1. Radar sensors ... around the car ...
  2. Video cameras ...
  3. Lidar sensors ... pulses of light ...
  4. Ultrasonic sensors in the wheels ...
  5. ... a central computer ... data from the various sensors ... manipulate the steering, acceleration and braking.

Questo suggerisce che devi assicurarti che le parti della tua auto si conoscano in base a questi requisiti. Ad esempio, l'oggetto del computer di un oggetto auto specifico conosce ciascuno degli oggetti sensore di quell'auto in modo che possa inviare query.

Considerando ciò, sembra che il vincitore sia il modello di build . È l'unico modello progettato per far fronte a un complesso processo di costruzione e assemblaggio di parti.

    
risposta data 18.11.2017 - 16:52
fonte

Leggi altre domande sui tag