allora metto tutta la traccia così mi dirai se confermi la seconda
Si vuole realizzare un sistema di gestione delle targhe automobilistiche che sia accessibile remotamente da parte di più client in modo concorrente. Una targa automobilistica è un identificatore univoco formato da 2 lettere, 3 numeri e 2 lettere (es. ac768pk, dk007gu) che viene associato a una coppia formata da un’autovettura ed ad una persona (proprietario dell’autovettura). Il sistema deve permettere di richiedere (e ottenere) una nuova targa, gestire un passaggio di proprietà (ossia l’autovettura e la targa e vengono associate ad una diversa persona), la cancellazione e la ricerca del proprietario a partire dalla targa.
In particolare si definiscano:
1. la classe Targa che identifica in modo univoco un oggetto di tipo targa. Il costruttore deve assicurare che non possano esistere due targhe identiche. Inoltre, la targa non deve contenere riferimenti all’autovettura o alla persona.
2. un’interfaccia Java per il tipo di dato astratto RegistroAutomobilistico avente le seguenti operazioni:
• Inserisci: dato una Persona ed una Autovettura restituisce un elemento di tipo Targa.
• Cancella: dato una Targa viene cancellata la registrazione effettuata in precedenza. Qualora non vi sia la targa indicata, l’operazione non può essere eseguita
• Passaggio: data una targa ed una persona, viene modificata l’associazione sostituendo il vecchio proprietario con la persona passata per parametro. Qualora la targa sia inesistente l’operazione non può essere eseguita
• Proprietario: dato una targa restituisce la persona che risulta proprietaria Qualora non via sia tale elemento l’operazione non può essere effettuata
3. una classe che implementa l’interfaccia RegistroAutomobilistico
4. un protocollo di comunicazione che consenta di accedere remotamente al RegistroAutomobilistico
5. il lato server del sistema (Skeleton e server)
Si faccia uso del pattern Proxy.
Si ipotizzi l’esistenza delle classi Autovettura e Persona che NON devono essere modellate