Ciao a tutti, sono uno studente di informatica e volevo chiedervi qualche dritta su un progetto che devo realizzare. Si tratta di un agenda di appuntamenti con i seguenti requisiti:

Progettare ed implementare in Java un sistema per la gestione di un’agenda di appuntamenti. Il sistemadeve comprendere almeno:
• Contatti con cui si prendono appuntamenti, contenenti almeno:◦ nome e cognome;◦ altri eventuali dati personali.
• Appuntamenti di diversi tipi, tra cui almeno:◦ appuntamenti con un contatto, fissati per un certo luogo, orario e durata;◦ un altro tipo di evento in agenda a scelta, per esempio, le deadline (orario entro il quale unacerta cosa deve essere finita).
• Un’agenda che raccolga contatti e appuntamenti, e che deve almeno:◦ poter essere memorizzata e letta da file, in formato leggibile da editor di testo;◦ provvedere un iteratore che scorra gli appuntamenti in ordine di orario (senza poterlicancellare);◦ aggiungere, modificare e rimuovere contatti e appuntamenti, avvisando in caso si creinosovrapposizioni di appuntamenti;◦ cercare appuntamenti per data;◦ cercare appuntamenti per contatto.• Un interfaccia testuale o grafica, che fornisca a un utente un accesso alle funzionalità dell’agenda.

Volevo sapere più che altro come potrei organizzare il codice programmando secondo MVC.
L'interfaccia la farò testuale, quindi avrò una classe che contiene il main e richiama i vari metodi (disponibili in un menù testuale).
Ho già fatto la classe Contatto e AppuntamentoContatto(tra i campi ce anche Contatto contatto). Però non so come mettere in relazione il contatto con l'appuntamento.
Secondo voi è necessario memorizzare in un array tutti i contatti? o basta un array con gli appuntamenti?