Sto creando un design orientato agli oggetti per un'app di cab-call come Uber. Ho alcune delle classi elencate. Sto avendo problemi nel progettare il comportamento tra le classi. Ad esempio, ho queste due classi -
Customer
e Driver
Un cliente può chiamare i conducenti e un conducente può accettare una richiesta di guida dai clienti.
Quindi il mio pensiero è Customer
class avrà una funzione contactNearByDrivers()
. E la classe Driver
avrà una funzione come getRideRequest()
Ho due domande qui -
-
Dove dovrebbe essere l'effettiva implementazione di contattare i driver vicini e confermare la risposta del guidatore? Il mio pensiero è che possa esistere una classe di utilità, diciamo
CustomerDriverInteraction
. Questa classe avrà in realtà funzioni per contattare da vicino i conducenti e registrare le loro risposte. La funzionecontactNearByDrivers()
inCustomer
class creerebbe un'istanza diCustomerDriverInteraction
e chiamerà le sue funzioni. È un buon modo per farlo? -
Una volta che un autista accetta una richiesta, il cliente e il conducente devono essere collegati insieme per una corsa. Dovrebbe esserci un'altra classe chiamata
Ride
? La classeRide
avrà unCustomer
eDriver
oggetti come membri, tra gli altri campi. Questo approccio è corretto? Quali sono i modi migliori per progettarlo?