Parking Simulation Software Design

4

Mi è stato richiesto di sviluppare un problema abbastanza noto per un colloquio di lavoro. La simulazione di parcheggio che un esempio può trovare qui .

Ho trovato alcune idee su quale modello di design dovrei usare e così via, ma mi sono confuso quando ho cercato su come le altre persone l'hanno interpretato.

Questa potrebbe essere una domanda davvero stupida, ma devo essere sicuro di non essere l'unico a pensarla così.

Ho trovato molte persone che usano un'interfaccia del veicolo implementata dalle classi Car e Truck (Fin qui, tutto bene). Ma tutti mettono le proprietà della dimensione occupata dal veicolo e la tassa che deve pagare, anche in quelle classi.

Posso capirlo. Ma per me non ha molto senso, dal momento che la dimensione non è la dimensione effettiva del veicolo, ma quanto spazio di parcheggio richiede. Ad esempio (un po 'senza senso, ma ...) potresti creare un altro Parcheggio basato sulla dimensione di moto / bici, quindi i valori sarebbero diversi perché il Parcheggio è diverso, non i veicoli stessi.

Lo stesso vale per i prezzi, almeno per me, il parcheggio indica le tariffe, non i veicoli.

Ma, se il parcheggio fa tutto, le classi di veicoli non avranno nulla da fare e non sembreranno molto coese.

È chiaro? Ha senso o sono stupido?

    
posta Patrick Bard 04.04.2015 - 09:34
fonte

1 risposta

4

Sono pienamente d'accordo con te, per il compito dato, l'introduzione di una classe Vehicle IMHO non ha molto senso. Potrebbe avere senso in futuro, supponendo che sia necessario registrare più informazioni sulle auto di quelle attualmente richieste, ma quando qualcuno mi dice di scrivere il codice "pronto per la produzione", mi attenerei il più vicino possibile al principio di YAGNI e non progetterei alcun caratteristiche non ancora richieste

Come "altre persone" potrebbero interpretare il compito: ho visto esempi di Vehicle e Car in così tanti esempi introduttivi di OO, specialmente per introdurre il concetto di ereditarietà, che sono piuttosto sicuro di molti sviluppatori che leggi la descrizione del requisito a metà strada sono tentati di calzare il problema nell'astrazione Vehicle / Car che hanno appreso prima.

IMHO è una forma di "programmazione di conincidenza" , qualcosa che è menzionato nel libro " Il programmatore pragmatico "come una specie di anti-modello.

    
risposta data 04.04.2015 - 11:14
fonte

Leggi altre domande sui tag