Sto provando a creare un programma per console java che visualizza un Menu con poche opzioni. Ogni selezione di opzioni esegue alcune operazioni indipendenti, ad esempio eseguendo uno script o eseguendo alcune operazioni db, ad esempio:
1 option1title
2 option2title
3 option3title
...
Ho bisogno di progettarlo in modo tale che dovrei essere in grado di aggiungere facilmente nuove opzioni. dì semplicemente aggiungendo una nuova classe. Alcune opzioni potrebbero mostrare anche un sottomenu.
Pensieri di progettazione che ho
Avere un'interfaccia dire IOption
con metodi come optionTitle
, optionAction
. Quindi ogni Option
nel menu implementerebbe questa interfaccia e scriverà la sua azione & titolo.
Come faccio a visualizzare il menu?
Posso avere una classe in cui ogni opzione è registrata. Di 'una lista di tutte le opzioni. Quindi il mio programma principale avrebbe iterato su queste classi e mostrato il menu. La selezione delle opzioni chiamerebbe l'azione di quella particolare classe.
Altrimenti posso usare reflection / annotation per ottenere tutte le classi che implementano questa interfaccia e mostrare il menu ---- > Questo potrebbe essere eccessivo.
C'è un modo migliore per progettare questo? Qualche modello di progettazione che posso portare? La mia priorità è un buon design.
Anche con la mia soluzione, se voglio aggiungere una nuova opzione, dovrei registrare ciascuna opzione in un elenco, implementare la classe ecc.
Invece di aggiungere a un elenco nella classe di registro, che ne dici di avere il link tra optionTitle
e informazioni sulla classe in un file xml o qualcosa del genere?
E avrò anche dei sottomenu. Oltre a scrivere questo nel metodo itemAction
, un modo migliore di progettarlo?
Fammi sapere se devo aggiungere ulteriori informazioni.
Nota: questo sarà sempre invocato dal prompt dei comandi. Prompt dei comandi shell / windows. Non ho bisogno di alcuna GUI per questo.