-
Notifications
You must be signed in to change notification settings - Fork 0
Architettura
Il programma è stato progettato con architettura MVC (model-view-controller).
Il controller è la classe restaurant.Restaurant.java
mentre le viste sono tutte definite nel package graphics
. Il modello si trova nel package restaurant
.
Il controller è di tipo Observable in modo da notificare al modello i cambiamenti di stato, quindi fra i pattern utilizzati c'è anche l' Observer: è stato usato anche il pattern Singleton per aumentare la sicurezza del programma ed istanziare una sola volta la procedura di login, oltre che per altre classi.
Il programma è stato progettato per operare localmente dunque la base di dati non utilizza connessioni remote.
##Formattazione dei file Il file json contenente le configurazioni ha la segente struttura:
{
"app_name": "app name",
"this_path": "./data/appConfig.json",
"exit_state": 0,
"snapshot_seconds": 5000,
"table_number": 5,
"menu_path": "./data/menu.txt",
"def_dbuser": "root",
"def_dbpw": "",
"def_dburl": "jdbc:mysql://localhost:3306/ristorante?relaxAutoCommit=true",
"def_lang": "IT",
"restaurant_name": "restaurant name"
}
app_name: il nome dell' applicazione
this_path: percorso del file di configurazione stesso
exit_state: stato di uscita dell' applicazione. 0 se chiusa correttamente.
snapshot_seconds: delay fra salvataggi di backup
table_number: numero dei tavoli da istanziare all' avvio dell' applicazione
menu_path: percorso del file menu
def_dbuser: nome utente default per la connessione al database locale
def_dbpw: password default per la connessione al database locale
def_dburl: url default di connessione al database
def_lang: lingua di default
restaurant_name: nome del ristorante
Il file di menu ha la seguente struttura:
menuelement_name prezzo tipo descrizione
Gli spazi indicano una tabulazione \t
. Una riga valida può essere:
Pasta alla Carbonara 7 PRIMO Spaghetti con uovo e pancetta.