mauronew ha scritto:
1) come gestire la numerazione dei posti barca? uso un solo ArrayList o ne faccio 3 diversi (uno per i posti-barca 1-20, uno per i posti barca 21-50 e il terzo per i posti barca >51)? O faccio 3 classi diverse?
Se la numerazione dei posti è "lineare", ovvero da 1 in avanti, si potrebbe usare un singolo ArrayList. C'è solo una cosa che non è ben descritta: il numero TOTALE dei posti è fisso/noto?
Il ArrayList chiaramente è espandibile ma se all'inizio inserisci una barca al primo posto (indice 0 = posto 1) e poi ne va aggiunta una al posto 77, ovviamente sei tu che devi creare la necessaria "capacità" fisica del ArrayList, altrimenti l'indice 76 non esiste ... Ma questa logica è facilmente incapsulabile in PostiBarca.
Un'altra soluzione è usare una map Integer (posto) ---> Barca. La scelta di quale implementazione di map usare (HashMap, TreeMap, ecc...) però dipende se devi poter iterare facilmente in sequenza sui posti oppure no.
mauronew ha scritto:
2) come tenere traccia dei giorni di arrivo e di partenza delle barche? Mi serve un'altra classe?
Qui dipende da
quando va preso il tempo di arrivo e partenza. Quando si fa un "aggiungi" e "rimuovi" di un Barca sul PostiBarca? Allora sì, è incapsulabile in PostiBarca.
Basta quindi fare un'altra classe es. OrmeggioBarca che modella l'insieme di Barca+data arrivo+data partenza. E il ArrayList non sarà più ArrayList<Barca> ma ArrayList<OrmeggioBarca>.